[INFO] cloning repository https://github.com/jatmn/Codex-warp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jatmn/Codex-warp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjatmn%2FCodex-warp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjatmn%2FCodex-warp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1656c5654bb04568924e7812027de2dd827a4cd3
[INFO] testing jatmn/Codex-warp against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjatmn%2FCodex-warp" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-6-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/jatmn/Codex-warp
[INFO] finished tweaking git repo https://github.com/jatmn/Codex-warp
[INFO] tweaked toml for git repo https://github.com/jatmn/Codex-warp written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jatmn/Codex-warp on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jatmn/Codex-warp 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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded hashlink v0.12.1
[INFO] [stderr]   Downloaded rusqlite v0.40.2
[INFO] [stderr]   Downloaded rustls-pki-types v1.15.0
[INFO] [stderr]   Downloaded webpki-root-certs v1.0.8
[INFO] [stderr]   Downloaded quinn-proto v0.11.15
[INFO] [stderr]   Downloaded libsqlite3-sys v0.38.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1ab134d57af559f2b449983dc3c9975b22a8d00b63c25319ee02d8b1a2f77c07
[INFO] running `Command { std: "docker" "start" "1ab134d57af559f2b449983dc3c9975b22a8d00b63c25319ee02d8b1a2f77c07", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1ab134d57af559f2b449983dc3c9975b22a8d00b63c25319ee02d8b1a2f77c07", 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" "1ab134d57af559f2b449983dc3c9975b22a8d00b63c25319ee02d8b1a2f77c07" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1ab134d57af559f2b449983dc3c9975b22a8d00b63c25319ee02d8b1a2f77c07", 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" "1ab134d57af559f2b449983dc3c9975b22a8d00b63c25319ee02d8b1a2f77c07" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling http v1.4.2
[INFO] [stderr]    Compiling rustls-pki-types v1.15.0
[INFO] [stderr]    Compiling futures-task v0.3.34
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling socket2 v0.6.4
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling memchr v2.8.2
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling winnow v1.0.3
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling cc v1.2.65
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling toml_parser v1.1.3+spec-1.1.0
[INFO] [stderr]    Compiling clap_builder v4.6.7
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling hashlink v0.12.1
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling libsqlite3-sys v0.38.2
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling aws-lc-sys v0.45.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling toml v1.1.6+spec-1.1.0
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling clap_derive v4.6.7
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling clap v4.6.7
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling tokio v1.53.2
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling aws-lc-rs v1.18.1
[INFO] [stderr]    Compiling rustls v0.23.45
[INFO] [stderr]    Compiling rustls-webpki v0.103.15
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.13.5
[INFO] [stderr]    Compiling rusqlite v0.40.2
[INFO] [stderr]    Compiling codex-warp v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 3m 50s
[INFO] running `Command { std: "docker" "inspect" "1ab134d57af559f2b449983dc3c9975b22a8d00b63c25319ee02d8b1a2f77c07", 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" "1ab134d57af559f2b449983dc3c9975b22a8d00b63c25319ee02d8b1a2f77c07" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling codex-warp v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 36s
[INFO] running `Command { std: "docker" "inspect" "1ab134d57af559f2b449983dc3c9975b22a8d00b63c25319ee02d8b1a2f77c07", 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" "1ab134d57af559f2b449983dc3c9975b22a8d00b63c25319ee02d8b1a2f77c07" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.30s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/codex_warp-72f328455de960b8)
[INFO] [stdout] 
[INFO] [stdout] running 996 tests
[INFO] [stdout] test config::tests::clear_disabled_overlapping_removes_prefixed_and_unprefixed_ids ... ok
[INFO] [stdout] test config::tests::codex_auto_review_literal_model_does_not_route_to_provider_overrides ... ok
[INFO] [stdout] test config::tests::debug_config_parses_log_options ... ok
[INFO] [stdout] test config::tests::debug_config_parses_rotation_options ... ok
[INFO] [stdout] test config::tests::disable_model_is_noop_when_overlapping_disable_exists ... ok
[INFO] [stdout] test config::tests::continue_guard_config_parses_options ... ok
[INFO] [stdout] test config::tests::disabling_unprefixed_model_blocks_prefixed_model_id ... ok
[INFO] [stdout] test config::tests::distinct_prefixed_model_ids_do_not_overlap ... ok
[INFO] [stdout] test config::tests::debug_config_parses_tracing_filter ... ok
[INFO] [stdout] test config::tests::exact_disabled_catalog_entry_wins_over_earlier_enabled_alias ... ok
[INFO] [stdout] test config::tests::model_family_matches_are_sorted_by_priority ... ok
[INFO] [stdout] test config::tests::continue_guard_defaults_to_enabled_end_turn_false ... ok
[INFO] [stdout] test config::tests::disabling_catalog_entry_blocks_prefixed_model_id ... ok
[INFO] [stdout] test config::tests::model_family_patterns_support_wildcards ... ok
[INFO] [stdout] test config::tests::disabling_upstream_slug_blocks_catalog_alias ... ok
[INFO] [stdout] test config::tests::nested_model_ids_do_not_overlap_a_bare_suffix ... ok
[INFO] [stdout] test config::tests::hy3_patterns_do_not_overmatch_unrelated_hunyuan_models ... ok
[INFO] [stdout] test config::tests::deepseek_flash_version_patterns_exclude_prefix_collisions ... ok
[INFO] [stdout] test config::tests::provider_id_for_config_model_matches_upstream_id_aliases ... ok
[INFO] [stdout] test config::tests::remove_model_catalog_entry_clears_disabled_model_id ... ok
[INFO] [stdout] test config::tests::config_include_loads_provider_profile_relative_to_declaring_file ... ok
[INFO] [stdout] test config::tests::provider_id_for_config_model_matches_prefixed_provider_models ... ok
[INFO] [stdout] test config::tests::named_providers_can_omit_provider_specific_transform ... ok
[INFO] [stdout] test config::tests::nested_model_ids_do_not_overlap_provider_prefixed_aliases ... ok
[INFO] [stdout] test config::tests::hy3_family_advertises_context_reasoning_and_tool_transforms ... ok
[INFO] [stdout] test config::tests::hy3_exact_ids_inherit_broad_family_transform ... ok
[INFO] [stdout] test config::tests::first_class_reasoning_and_tool_translation_for_target_models ... ok
[INFO] [stdout] test config::tests::remove_model_catalog_entry_clears_disabled_upstream_alias ... ok
[INFO] [stdout] test config::tests::remove_model_catalog_entry_with_empty_upstream_id_clears_disabled_model_id ... ok
[INFO] [stdout] test config::tests::remove_model_catalog_entry_with_none_upstream_id_clears_disabled_model_id ... ok
[INFO] [stdout] test config::tests::suppress_catalog_model_blocks_rediscovery_without_clearing_prior_disable ... ok
[INFO] [stdout] test config::tests::default_config_loads_github_tool_policy_rules ... ok
[INFO] [stdout] test config::tests::named_providers_parse_with_model_routes_and_provider_transforms ... ok
[INFO] [stdout] test config::tests::model_family_includes_load_relative_to_declaring_file ... ok
[INFO] [stdout] test config::tests::model_family_overlay_rejects_unknown_fields ... ok
[INFO] [stdout] test config::tests::tool_policy_config_parses_options ... ok
[INFO] [stdout] test config::tests::webui_auth_is_optional_and_config_driven ... ok
[INFO] [stdout] test config::tests::transform_patch_can_enable_concatenated_tool_call_repair ... ok
[INFO] [stdout] test config::tests::model_family_remove_morph_selector_rejects_unknown_fields ... ok
[INFO] [stdout] test config::tests::webui_config_partial_toml_keeps_persistence_disabled ... ok
[INFO] [stdout] test config::tests::transform_patch_can_enable_duplicate_tool_markup_suppression ... ok
[INFO] [stdout] test config::tests::transform_patch_can_preserve_native_agent_messages ... ok
[INFO] [stdout] test config_loader::tests::config_layer_paths_keeps_default_first_without_duplicate ... ok
[INFO] [stdout] test config::tests::transform_patch_can_remove_inherited_morphs_before_appending ... ok
[INFO] [stdout] test config_loader::tests::default_config_path_falls_back_to_explicit_config_ancestor ... ok
[INFO] [stdout] test config_loader::tests::merge_toml_appends_tool_policy_rules_only ... ok
[INFO] [stdout] test config_loader::tests::merge_toml_recurses_tables_and_replaces_scalar_values ... ok
[INFO] [stdout] test config::tests::layered_config_keeps_default_morphs_when_profile_omits_them ... ok
[INFO] [stdout] test config::tests::model_family_morph_rejects_unknown_fields ... ok
[INFO] [stdout] test config::tests::webui_remote_access_requires_explicit_opt_in ... ok
[INFO] [stdout] test config_loader::tests::provider_matches_model_requires_enabled_model ... ok
[INFO] [stdout] test config_loader::tests::config_includes_resolve_relative_to_declaring_file ... ok
[INFO] [stdout] test config::tests::reusable_provider_profiles_leave_auto_review_to_model_families ... ok
[INFO] [stdout] test config::tests::tool_policy_replace_clears_default_rules_before_custom_includes ... ok
[INFO] [stdout] test debug_log::tests::bearer_redaction_keeps_json_after_token ... ok
[INFO] [stdout] test debug_log::tests::apply_config_enables_and_disables_logging_without_a_new_handle ... ok
[INFO] [stdout] test debug_log::tests::apply_config_rejects_restricted_path_without_enabling_writer ... ok
[INFO] [stdout] test debug_log::tests::apply_config_stores_relative_log_path_as_the_resolved_destination ... FAILED
[INFO] [stdout] test debug_log::tests::apply_config_pins_disabled_path_through_parent_symlink ... ok
[INFO] [stdout] test debug_log::tests::apply_config_stores_the_live_snapshot ... ok
[INFO] [stdout] test debug_log::tests::bearer_redaction_handles_unicode_before_token ... ok
[INFO] [stdout] test debug_log::tests::apply_config_pins_relative_log_path_while_disabled ... ok
[INFO] [stdout] test config::tests::example_configs_parse_request_morphs ... ok
[INFO] [stdout] test debug_log::tests::apply_config_fills_default_path_when_enabled_without_path ... FAILED
[INFO] [stdout] test debug_log::tests::completes_interrupted_rotation_when_backup_is_missing ... ok
[INFO] [stdout] test debug_log::tests::does_not_rotate_by_stale_mtime_when_created_is_recent ... ok
[INFO] [stdout] test debug_log::tests::is_secret_key_matches_private_key_and_signing_key ... ok
[INFO] [stdout] test debug_log::tests::log_applies_live_body_policy_at_write_time ... ok
[INFO] [stdout] test debug_log::tests::normalize_debug_config_fills_default_path_when_enabled ... ok
[INFO] [stdout] test debug_log::tests::log_helpers_apply_live_body_policy_at_write_time ... ok
[INFO] [stdout] test debug_log::tests::normalize_debug_config_does_not_rewrite_zero_rotation_limits ... ok
[INFO] [stdout] test debug_log::tests::apply_config_rejects_missing_parent_without_enabling_writer ... ok
[INFO] [stdout] test debug_log::tests::preserves_staged_segment_when_active_log_was_recreated ... ok
[INFO] [stdout] test debug_log::tests::promote_staging_to_backup_preserves_existing_backup_on_failure ... ok
[INFO] [stdout] test debug_log::tests::read_jsonl_tail_filters_and_limits_events ... ok
[INFO] [stdout] test debug_log::tests::promote_staging_to_backup_replaces_existing_backup ... ok
[INFO] [stdout] test debug_log::tests::apply_config_rotates_an_oversized_log ... ok
[INFO] [stdout] test debug_log::tests::read_jsonl_tail_rejects_symlink ... ok
[INFO] [stdout] test debug_log::tests::rejects_directory_log_path_for_rotation ... ok
[INFO] [stdout] test debug_log::tests::request_debug_summary_keeps_cache_fields_without_prompt_text ... ok
[INFO] [stdout] test debug_log::tests::should_not_rotate_log_when_within_limits ... ok
[INFO] [stdout] test debug_log::tests::redaction_covers_private_key_and_signing_key ... ok
[INFO] [stdout] test debug_log::tests::redaction_preserves_stream_frame_shape ... ok
[INFO] [stdout] test debug_log::tests::request_debug_summary_records_response_format_type_without_schema ... ok
[INFO] [stdout] test debug_log::tests::read_tail_reports_enabled_from_the_writer_snapshot ... ok
[INFO] [stdout] test debug_log::tests::rotates_debug_log_file_when_age_limit_exceeded ... ok
[INFO] [stdout] test debug_log::tests::recover_pending_orphans_during_rotate_check_without_rotating ... ok
[INFO] [stdout] test debug_log::tests::recovers_orphaned_pending_and_retired_after_backup_retirement_crash ... ok
[INFO] [stdout] test debug_log::tests::recovers_orphaned_pending_to_backup_after_staging_promotion_crash ... ok
[INFO] [stdout] test debug_log::tests::recovers_orphaned_staging_to_active_log_when_backup_exists ... ok
[INFO] [stdout] test debug_log::tests::rotates_debug_log_file_when_size_limit_exceeded ... ok
[INFO] [stdout] test debug_log::tests::redaction_removes_keys_from_verbose_debug_values ... ok
[INFO] [stdout] test debug_log::tests::should_rotate_log_by_age_when_mtime_is_recent ... ok
[INFO] [stdout] test debug_log::tests::text_fingerprint_identifies_error_without_exposing_text ... ok
[INFO] [stdout] test guardian_compat::tests::guardian_request_receives_compatibility_clarification ... ok
[INFO] [stdout] test debug_log::tests::should_rotate_log_when_age_limit_exceeded ... ok
[INFO] [stdout] test guardian_compat::tests::guardian_debug_event_omits_transcript_and_action ... ok
[INFO] [stdout] test guardian_compat::tests::guardian_shim_composes_with_json_object_fallback ... ok
[INFO] [stdout] test guardian_compat::tests::guardian_shim_does_not_synthesize_allow_or_deny ... ok
[INFO] [stdout] test debug_log::tests::validate_debug_log_path_rejects_escape_and_system_paths ... ok
[INFO] [stdout] test guardian_compat::tests::guardian_shim_is_idempotent ... ok
[INFO] [stdout] test debug_log::tests::should_rotate_log_when_size_limit_exceeded ... ok
[INFO] [stdout] test guardian_compat::tests::guardian_shim_preserves_policy_transcript_tools_schema_and_metadata ... ok
[INFO] [stdout] test debug_log::tests::validate_debug_log_path_rejects_missing_parent_directory ... ok
[INFO] [stdout] test debug_log::tests::validate_debug_log_path_rejects_parent_symlink_into_restricted_root ... ok
[INFO] [stdout] test guardian_compat::tests::guardian_prompt_cache_key_is_detected ... ok
[INFO] [stdout] test guardian_compat::tests::ordinary_request_does_not_receive_clarification ... ok
[INFO] [stdout] test http::tests::regional_openrouter_hostnames_get_attribution_headers ... ok
[INFO] [stdout] test http::tests::unknown_model_response_reports_the_requested_model ... ok
[INFO] [stdout] test http::tests::upstream_headers_supports_custom_api_key_header ... ok
[INFO] [stdout] test http::tests::upstream_redirect_policy_stops_opencode_go_redirects_only ... ok
[INFO] [stdout] test http::tests::build_upstream_json_request_sets_single_content_type ... ok
[INFO] [stdout] test http::tests::upstream_requests_report_codex_warp_user_agent ... ok
[INFO] [stdout] test http::tests::user_categories_override_openrouter_attribution ... ok
[INFO] [stdout] test http::tests::openrouter_provider_gets_attribution_headers ... ok
[INFO] [stdout] test http::tests::non_openrouter_providers_do_not_get_openrouter_attribution_headers ... ok
[INFO] [stdout] test http::tests::trailing_dot_openrouter_hostname_gets_attribution_headers ... ok
[INFO] [stdout] test http::tests::build_upstream_json_request_sends_single_content_type_on_wire ... ok
[INFO] [stdout] test models::tests::cached_overlay_rows_recompute_current_catalog_and_overlay_precedence ... ok
[INFO] [stdout] test ids::tests::generated_id_uses_prefix_process_and_unique_sequence ... ok
[INFO] [stdout] test models::tests::bare_disable_hides_prefixed_sibling_slug ... ok
[INFO] [stdout] test models::tests::cross_provider_disable_does_not_hide_unrelated_slugs ... ok
[INFO] [stdout] test models::tests::codex_model_info_synthesizes_supported_reasoning_from_default ... ok
[INFO] [stdout] test models::tests::cross_provider_disable_hides_colliding_slug_from_catalog_routes ... ok
[INFO] [stdout] test models::tests::cross_provider_disable_drops_retained_route_ownership ... ok
[INFO] [stdout] test http::tests::standard_referer_does_not_suppress_openrouter_attribution ... ok
[INFO] [stdout] test models::tests::catalog_upstream_id_alias_wins_over_live_slug_collision ... ok
[INFO] [stdout] test models::tests::derived_auto_review_aliases_keep_canonical_single_matches_routable ... ok
[INFO] [stdout] test http::tests::non_openrouter_providers_preserve_explicit_headers_without_auto_attribution ... ok
[INFO] [stdout] test models::tests::derived_auto_review_aliases_require_one_enabled_match_across_alias_kinds ... ok
[INFO] [stdout] test models::tests::exact_auto_review_catalog_id_remains_authoritative ... ok
[INFO] [stdout] test models::tests::empty_upstream_auto_review_override_does_not_suppress_family_localization ... ok
[INFO] [stdout] test models::tests::grok_4_6_alias_detection_excludes_other_models ... ok
[INFO] [stdout] test models::tests::grok_4_6_alias_localization_preserves_distinct_review_targets ... ok
[INFO] [stdout] test models::tests::hidden_codex_builtin_overrides_are_appended_by_default ... ok
[INFO] [stdout] test models::tests::hidden_codex_builtin_overrides_do_not_replace_real_gateway_models ... ok
[INFO] [stdout] test models::tests::glm_5_3_family_metadata_matches_its_upstream_reasoning_contract ... ok
[INFO] [stdout] test models::tests::live_catalog_localizes_auto_review_target_to_the_discovered_model ... ok
[INFO] [stdout] test models::tests::catalog_upstream_id_alias_not_listed_in_merged_models_for_owner ... ok
[INFO] [stdout] test models::tests::live_catalog_localizes_canonical_deepseek_flash_review_target ... ok
[INFO] [stdout] test models::tests::live_catalog_localizes_canonical_flash_variant_aliases_to_their_original_ids ... ok
[INFO] [stdout] test models::tests::cross_provider_disable_hides_colliding_slug_from_v1_models_publication ... ok
[INFO] [stdout] test models::tests::live_catalog_localizes_grok_4_6_aliases_to_discovered_ids ... ok
[INFO] [stdout] test models::tests::deepseek_family_metadata_is_variant_specific ... ok
[INFO] [stdout] test models::tests::live_catalog_localizes_suffixed_flash_models_to_their_routable_ids ... ok
[INFO] [stdout] test models::tests::live_catalog_localizes_underscore_versioned_flash_model ... ok
[INFO] [stdout] test models::tests::live_catalog_matching_upstream_auto_review_target_still_localizes_versioned_model ... ok
[INFO] [stdout] test models::tests::live_catalog_null_auto_review_target_does_not_block_family_localization ... ok
[INFO] [stdout] test models::tests::kimi_k2_family_metadata_supports_newer_dot_aliases ... ok
[INFO] [stdout] test models::tests::live_catalog_preserves_distinct_family_auto_review_target ... ok
[INFO] [stdout] test models::tests::live_catalog_variant_does_not_fall_back_to_a_static_base_review_target ... ok
[INFO] [stdout] test models::tests::live_catalog_overridden_auto_review_target_does_not_block_family_localization ... ok
[INFO] [stdout] test models::tests::managed_disable_survives_recording_provider_disable ... ok
[INFO] [stdout] test http::tests::x_title_alias_suppresses_openrouter_title ... ok
[INFO] [stdout] test models::tests::managed_catalog_toggle_off_hides_colliding_slug_without_disabled_models ... ok
[INFO] [stdout] test http::tests::user_headers_override_openrouter_attribution ... ok
[INFO] [stdout] test models::tests::managed_upstream_only_disable_hides_catalog_id ... ok
[INFO] [stdout] test models::tests::manual_catalog_localizes_canonical_auto_review_targets_to_routable_ids ... ok
[INFO] [stdout] test models::tests::manual_catalog_does_not_localize_auto_review_to_a_disabled_target ... ok
[INFO] [stdout] test models::tests::manual_catalog_localizes_hy3_auto_review_to_provider_model ... ok
[INFO] [stdout] test models::tests::manual_catalog_models_copy_discovered_upstream_metadata ... ok
[INFO] [stdout] test models::tests::manual_catalog_models_skip_upstream_id_aliases ... ok
[INFO] [stdout] test models::tests::live_catalog_localizes_hy3_review_target_to_each_discovered_alias ... ok
[INFO] [stdout] test models::tests::manual_provider_catalog_is_normalized_for_codex ... ok
[INFO] [stdout] test models::tests::model_metadata_config_overrides_openai_models_list ... ok
[INFO] [stdout] test models::tests::minimax_m_family_metadata_applies_to_matching_catalog_ids ... ok
[INFO] [stdout] test http::tests::lookalike_openrouter_hostname_does_not_get_attribution_headers ... ok
[INFO] [stdout] test models::tests::mimo_family_metadata_replaces_xiaomi_provider_overrides ... ok
[INFO] [stdout] test models::tests::manual_provider_catalog_sets_provider_local_auto_review_models ... ok
[INFO] [stdout] test models::tests::live_catalog_localizes_exact_auto_review_target_to_provider_model_id ... ok
[INFO] [stdout] test models::tests::manual_catalog_keeps_hy3_review_on_the_visible_model_when_bare_aliases_collide ... ok
[INFO] [stdout] test models::tests::model_variant_ids_require_a_nonempty_delimited_suffix ... ok
[INFO] [stdout] test models::tests::model_family_metadata_applies_to_any_provider_model_catalog ... ok
[INFO] [stdout] test models::tests::models_prunes_prior_routes_when_catalog_refresh_is_empty ... ok
[INFO] [stdout] test models::tests::failed_provider_route_recovery_does_not_replace_fresh_model_owner ... ok
[INFO] [stdout] test models::tests::models_lists_only_catalog_entry_when_upstream_id_differs ... ok
[INFO] [stdout] test models::tests::openai_models_list_is_normalized_for_codex ... ok
[INFO] [stdout] test models::tests::normalize_models_rejects_nonempty_payload_with_no_usable_models ... ok
[INFO] [stdout] test models::tests::namespaced_underscore_flash_variant_advertises_its_own_review_target ... ok
[INFO] [stdout] test models::tests::prefixed_disable_hides_bare_sibling_slug ... ok
[INFO] [stdout] test models::tests::provider_model_fields_are_preserved_when_available ... ok
[INFO] [stdout] test models::tests::provider_model_info_passthrough_preserves_codex_metadata ... ok
[INFO] [stdout] test models::tests::prefixed_disable_does_not_hide_unrelated_prefixed_sibling ... ok
[INFO] [stdout] test models::tests::provider_model_merge_keeps_upstream_and_adds_local_missing ... ok
[INFO] [stdout] test http::tests::responses_and_models_paths_get_attribution_headers ... ok
[INFO] [stdout] test models::tests::prefixed_disable_covers_sibling_catalog_upstream_alias ... ok
[INFO] [stdout] test models::tests::register_catalog_routes_for_provider_adds_upstream_id_aliases ... ok
[INFO] [stdout] test models::tests::qwen_family_metadata_applies_to_documented_qwen3_6_variant ... ok
[INFO] [stdout] test models::tests::register_catalog_routes_skips_disabled_entries ... ok
[INFO] [stdout] test models::tests::provider_overrides_win_over_model_family_metadata ... ok
[INFO] [stdout] test models::tests::failed_provider_refresh_does_not_retain_globally_disabled_route ... ok
[INFO] [stdout] test models::tests::route_and_seed_publication_is_cancellation_safe ... ok
[INFO] [stdout] test models::tests::mutation_locked_failed_refresh_does_not_cache_stale_seed_snapshot ... ok
[INFO] [stdout] test models::tests::publish_model_routes_stores_discovered_models ... ok
[INFO] [stdout] test models::tests::models_can_rebuild_while_a_webui_mutation_holds_the_lock ... ok
[INFO] [stdout] test models::tests::models_returns_empty_list_when_no_providers_configured ... ok
[INFO] [stdout] test models::tests::models_returns_empty_list_when_all_models_disabled ... ok
[INFO] [stdout] test models::tests::seed_model_routes_claims_overlay_enabled_upstream_only_models ... ok
[INFO] [stdout] test http::tests::resolved_session_header_survives_chat_transform_and_request_rebuild ... ok
[INFO] [stdout] test http::tests::dynamic_session_header_is_safe_and_present_without_a_cache_key ... ok
[INFO] [stdout] test models::tests::seed_model_routes_skips_overlay_seeds_for_disabled_providers ... ok
[INFO] [stdout] test namespace_helpers::tests::collapsed_helper_response_restores_split_namespace_shape ... ok
[INFO] [stdout] test models::tests::static_toml_disable_stays_provider_scoped ... ok
[INFO] [stdout] test models::tests::versioned_deepseek_v4_flash_models_advertise_a_routable_auto_review_target ... ok
[INFO] [stdout] test models::tests::seed_and_retain_refresh_does_not_restore_globally_disabled_route ... ok
[INFO] [stdout] test namespace_helpers::tests::current_codex_split_namespace_history_replays_visible_child ... ok
[INFO] [stdout] test namespace_helpers::tests::encrypted_argument_detection_requires_an_explicit_true_annotation ... ok
[INFO] [stdout] test namespace_helpers::tests::encrypted_v2_family_named_multi_agent_v1_is_incompatible ... ok
[INFO] [stdout] test namespace_helpers::tests::does_not_insert_instruction_for_collapsed_only_namespace ... ok
[INFO] [stdout] test namespace_helpers::tests::encrypted_v2_name_collision_without_codex_provenance_is_not_reported ... ok
[INFO] [stdout] test namespace_helpers::tests::expands_namespace_children_to_ordinary_functions ... ok
[INFO] [stdout] test namespace_helpers::tests::full_v2_family_without_codex_description_is_not_reported ... ok
[INFO] [stdout] test namespace_helpers::tests::duplicate_runtime_tools_retain_plaintext_encryption_requirement ... ok
[INFO] [stdout] test namespace_helpers::tests::helper_instruction_uses_the_allocated_collision_alias ... ok
[INFO] [stdout] test namespace_helpers::tests::history_keeps_envelope_on_visible_alias_when_nested_tool_is_unknown ... ok
[INFO] [stdout] test namespace_helpers::tests::history_replays_leftover_collapsed_helper_as_visible_child ... ok
[INFO] [stdout] test namespace_helpers::tests::history_unwraps_envelope_on_visible_alias ... ok
[INFO] [stdout] test namespace_helpers::tests::history_uses_model_visible_child_name ... ok
[INFO] [stdout] test namespace_helpers::tests::inserts_subagent_helper_instruction_once ... ok
[INFO] [stdout] test namespace_helpers::tests::keeps_collapsed_helper_when_namespace_has_no_children ... ok
[INFO] [stdout] test namespace_helpers::tests::occupied_child_and_runtime_names_use_a_distinct_namespace_alias ... ok
[INFO] [stdout] test namespace_helpers::tests::occupied_child_names_fall_back_to_namespaced_visible_name ... ok
[INFO] [stdout] test namespace_helpers::tests::partially_encrypted_same_name_family_is_not_reported_as_v2 ... ok
[INFO] [stdout] test namespace_helpers::tests::prior_helper_instruction_is_still_idempotent_on_both_wire_paths ... ok
[INFO] [stdout] test namespace_helpers::tests::custom_v2_namespace_is_reported_as_plaintext_incompatible ... ok
[INFO] [stdout] test models::tests::models_uses_current_catalog_owner_across_rebuild ... ok
[INFO] [stdout] test models::tests::x_ai_grok_family_metadata_is_variant_specific ... ok
[INFO] [stdout] test namespace_helpers::tests::responses_expansion_does_not_claim_an_occupied_runtime_alias ... ok
[INFO] [stdout] test models::tests::seed_model_routes_preserves_latest_explicit_claim_after_reopen ... ok
[INFO] [stdout] test namespace_helpers::tests::responses_expansion_reports_custom_v2_provenance ... ok
[INFO] [stdout] test namespace_helpers::tests::responses_helper_instruction_is_alias_aware_and_idempotent ... ok
[INFO] [stdout] test namespace_helpers::tests::restores_current_codex_namespace_shape_and_plaintext_marker ... ok
[INFO] [stdout] test namespace_helpers::tests::schema_stripping_preserves_encrypted_property_names_and_data_values ... ok
[INFO] [stdout] test namespace_helpers::tests::unknown_dotted_call_is_not_assigned_to_a_registered_namespace ... ok
[INFO] [stdout] test namespace_helpers::tests::unknown_non_default_namespace_history_keeps_its_flattened_identity ... ok
[INFO] [stdout] test namespace_helpers::tests::unrelated_encrypted_namespace_is_not_reported_as_v2 ... ok
[INFO] [stdout] test namespace_helpers::tests::unrelated_expanded_namespace_does_not_enable_subagent_instruction ... ok
[INFO] [stdout] test namespace_helpers::tests::unwraps_confused_spawn_agent_envelope ... ok
[INFO] [stdout] test namespace_helpers::tests::visible_alias_keeps_args_when_nested_tool_is_unknown ... ok
[INFO] [stdout] test process_log::tests::disabled_process_log_drops_events ... ok
[INFO] [stdout] test process_log::tests::process_log_redacts_secrets_in_messages ... ok
[INFO] [stdout] test process_log::tests::snapshot_filters_by_min_level_and_query ... ok
[INFO] [stdout] test process_log::tests::snapshot_returns_latest_events_in_order ... ok
[INFO] [stdout] test process_log::tests::tracing_filter_from_debug_or_uses_supplied_fallback ... ok
[INFO] [stdout] test process_log::tests::tracing_filter_from_debug_uses_config_or_stable_info ... ok
[INFO] [stdout] test process_log::tests::tracing_filter_rejects_empty_directives_by_falling_back ... ok
[INFO] [stdout] test process_log::tests::tracing_reload_fails_after_layer_disconnect ... ok
[INFO] [stdout] test process_log::tests::tracing_reload_for_tests_updates_current_filter ... ok
[INFO] [stdout] test process_log::tests::tracing_reload_pins_fallback_filter_at_construction ... ok
[INFO] [stdout] test process_log::tests::validate_debug_live_config_or_without_pin_uses_info ... ok
[INFO] [stdout] test process_log::tests::validate_debug_live_config_parses_the_effective_filter ... ok
[INFO] [stdout] test models::tests::stale_fallback_seed_generation_cannot_overwrite_newer_live_routes ... ok
[INFO] [stdout] test namespace_helpers::tests::does_not_unwrap_unregistered_tool_envelopes ... ok
[INFO] [stdout] test namespace_helpers::tests::generated_namespace_alias_uses_a_free_numeric_suffix ... ok
[INFO] [stdout] test namespace_helpers::tests::unrelated_namespace_history_keeps_the_plain_function_name ... ok
[INFO] [stdout] test provider::tests::broad_qwen3_6_family_drops_openai_reasoning_effort_morph ... ok
[INFO] [stdout] test models::tests::select_provider_does_not_fallback_to_sibling_for_globally_disabled_slug ... ok
[INFO] [stdout] test models::tests::mutation_route_refresh_retains_other_providers_without_refetching ... ok
[INFO] [stdout] test models::tests::seed_and_retain_does_not_restore_disabled_upstream_alias ... ok
[INFO] [stdout] test namespace_helpers::tests::visible_alias_envelope_follows_resolvable_nested_tool ... ok
[INFO] [stdout] test provider::tests::glm_5_3_clears_unknown_reasoning_history_for_tool_continuations ... ok
[INFO] [stdout] test provider::tests::first_class_model_reasoning_transforms_handle_disable_and_alias_paths ... ok
[INFO] [stdout] test provider::tests::kimi_code_variants_use_static_thinking_fields ... ok
[INFO] [stdout] test provider::tests::minimax_current_variants_have_distinct_thinking_transforms ... ok
[INFO] [stdout] test http::tests::dynamic_session_header_uses_responses_session_identity ... ok
[INFO] [stdout] test provider::tests::empty_model_falls_back_to_default_provider ... ok
[INFO] [stdout] test provider::tests::in_flight_session_request_resolves_auto_review_until_it_is_dropped ... ok
[INFO] [stdout] test provider::tests::codex_auto_review_stays_unresolved_without_a_configured_or_active_model ... ok
[INFO] [stdout] test provider::tests::provider_stream_options_include_usage_injects_chat_stream_options ... ok
[INFO] [stdout] test provider::tests::codex_auto_review_does_not_fall_back_to_default_provider ... ok
[INFO] [stdout] test provider::tests::provider_request_stream_options_include_usage_overrides_transform ... ok
[INFO] [stdout] test provider::tests::failed_later_session_request_does_not_block_an_earlier_success ... ok
[INFO] [stdout] test provider::tests::codex_auto_review_resolves_to_the_active_session_model_without_a_configured_default ... ok
[INFO] [stdout] test provider::tests::completing_the_same_session_update_refreshes_its_lru_entry ... ok
[INFO] [stdout] test provider::tests::codex_auto_review_resolves_to_the_configured_default_model ... ok
[INFO] [stdout] test provider::tests::qwen_families_drop_openai_reasoning_effort_morph ... ok
[INFO] [stdout] test provider::tests::qwen3_7_family_drops_openai_reasoning_effort_morph ... ok
[INFO] [stdout] test provider::tests::selected_provider_applies_matching_model_family_transform ... ok
[INFO] [stdout] test provider::tests::later_started_session_request_wins_when_streams_complete_out_of_order ... ok
[INFO] [stdout] test provider::tests::guardian_requests_do_not_replace_session_models ... ok
[INFO] [stdout] test provider::tests::select_provider_rejects_prefixed_model_when_suffix_disabled ... ok
[INFO] [stdout] test provider_templates::tests::bundled_templates_include_example_profiles ... ok
[INFO] [stdout] test provider::tests::session_model_cache_accepts_identifiers_at_its_byte_limits ... ok
[INFO] [stdout] test namespace_helpers::tests::implicit_runtime_alias_cannot_capture_a_later_namespace_child ... ok
[INFO] [stdout] test provider::tests::prefixed_models_route_to_named_provider_without_catalog_entry ... ok
[INFO] [stdout] test response_codec::tests::chat_completion_rewrites_spawn_agent_helper_to_namespaced_runtime ... ok
[INFO] [stdout] test provider::tests::select_provider_rejects_disabled_catalog_model ... ok
[INFO] [stdout] test response_codec::tests::chat_completion_tool_policy_blocks_github_token_call_in_assist_mode ... ok
[INFO] [stdout] test response_codec::tests::chat_reasoning_text_falls_through_empty_reasoning_to_reasoning_details ... ok
[INFO] [stdout] test provider::tests::session_model_cache_rejects_oversized_identifiers ... ok
[INFO] [stdout] test response_codec::tests::chat_completion_tool_policy_decorates_github_pr_call ... ok
[INFO] [stdout] test response_codec::tests::chat_completion_preserves_parallel_collaboration_calls_and_message_metadata ... ok
[INFO] [stdout] test response_codec::tests::chat_reasoning_text_flattens_reasoning_details_array ... ok
[INFO] [stdout] test provider::tests::session_model_cache_evicts_the_least_recently_used_session ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_debug_summary_counts_reasoning_details_without_payload ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_debug_summary_counts_reasoning_without_text ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_completion_includes_normalized_usage ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_flushes_reasoning_before_output_text ... ok
[INFO] [stdout] test response_codec::tests::chat_reasoning_text_handles_non_array_reasoning_details ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_reasoning_content_emits_reasoning_deltas ... ok
[INFO] [stdout] test models::tests::stale_model_discovery_does_not_publish_routes ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_reasoning_details_handles_incremental_items ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_reasoning_does_not_duplicate_existing_bold_header ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_reasoning_field_emits_reasoning_deltas ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_reasoning_coalesces_line_sized_deltas_until_a_small_block ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_reasoning_flushes_a_small_block_without_waiting_for_completion ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_reasoning_details_deduplicates_cumulative_snapshots ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_reasoning_flushes_at_paragraph_boundaries ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_reasoning_content_deduplicates_cumulative_strings ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_rewrites_spawn_agent_helper_to_namespaced_runtime ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_transport_error_still_fails ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_usage_choice_level_is_captured ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_tool_calls_without_done_completes ... ok
[INFO] [stdout] test response_codec::tests::chat_completion_tool_policy_blocks_github_token_call_in_enforce_mode ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_usage_nested_in_delta_is_captured ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_usage_delta_null_falls_back_to_choice ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_usage_null_top_level_falls_back_to_delta ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_done_marker_still_completes ... ok
[INFO] [stdout] test provider::tests::rejected_request_does_not_replace_the_active_session_model ... ok
[INFO] [stdout] test provider::tests::selection_retains_routing_epoch_while_reading_provider_identity ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_content_without_finish_reason_or_done_fails ... ok
[INFO] [stdout] test response_codec::tests::complete_sse_frame_decodes_split_utf8_without_loss ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_stop_without_done_completes ... ok
[INFO] [stdout] test response_codec::tests::chat_usage_normalizes_provider_cache_hit_fields ... ok
[INFO] [stdout] test provider::tests::unknown_models_do_not_fall_back_to_default_provider ... ok
[INFO] [stdout] test response_codec::tests::chat_text_delta_starts_with_output_item_added ... ok
[INFO] [stdout] test response_codec::tests::chat_usage_derived_total_saturates_untrusted_token_counts ... ok
[INFO] [stdout] test response_codec::tests::concatenated_tool_call_repair_bounds_recovered_call_count ... ok
[INFO] [stdout] test response_codec::tests::concatenated_tool_call_repair_budget_charges_raw_failed_and_padded_input ... ok
[INFO] [stdout] test response_codec::tests::concatenated_tool_call_repair_budget_enforces_each_exact_boundary ... ok
[INFO] [stdout] test response_codec::tests::concatenated_tool_call_repair_bounds_parser_work_by_argument_bytes ... ok
[INFO] [stdout] test provider::tests::sole_configured_provider_passes_through_unlisted_model_slugs ... ok
[INFO] [stdout] test response_codec::tests::concatenated_tool_call_repair_budget_is_shared_across_source_calls ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_all_remaining_tasks_are_done_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_above_are_the_remaining_steps_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_error_frame_followed_by_done_does_not_record_completion ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_budget_eviction_is_noop_under_cap ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_budget_exhausts_without_tool_progress ... ok
[INFO] [stdout] test response_codec::tests::concatenated_tool_call_repair_preserves_exact_argument_text ... ok
[INFO] [stdout] test response_codec::tests::concatenated_tool_call_repair_rejects_non_json_unicode_whitespace ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_below_are_remaining_tasks_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_budget_resets_after_messages_tool_progress ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_below_are_the_remaining_steps_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_all_remaining_tasks_colon_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_approval_pending_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_bare_let_me_know_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_budget_eviction_removes_entries_when_over_cap ... ok
[INFO] [stdout] test response_codec::tests::concatenated_tool_call_repair_requires_multiple_complete_objects ... ok
[INFO] [stdout] test provider::tests::pending_session_order_registry_stops_at_its_capacity ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_budget_resets_on_tool_progress_even_without_suspected_stop ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_check_back_with_you_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_cleared_pending_then_copular_pending_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_default_config_forces_followup_for_observed_rebase_pause ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_fires_without_any_update_plan_like_observed_session ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_complete_remaining_tasks_colon_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_first_let_me_summarize_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_completed_plan_does_not_block_after_later_tool_work ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_following_are_remaining_tasks_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_fully_completed_plan_blocks_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_generic_let_me_check_still_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_custom_tool_call_wait_input_partial_targets_forces_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_cleared_pending_with_still_need_colon_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_forces_followup_for_mid_plan_stop ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_complete_remaining_tasks_are_done_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_get_back_to_you_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_here_are_the_remaining_items_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_hy4_get_subagent_findings_by_resuming_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_hy4_let_me_inspect_query_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_hy4_let_me_verify_end_to_end_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_i_need_to_stop_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_final_report_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_follow_up_soon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_i_should_now_stop_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_i_still_need_to_inspect_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_i_still_need_to_stop_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_add_tests_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_continue_bare_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_budget_resets_after_tool_progress ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_continue_next_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_clone_the_repo_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_do_it_next_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_continue_later_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_help_fix_tests_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_run_soon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_think_about_this_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_wait_a_moment_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_wait_later_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_wait_until_you_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_wait_while_you_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_following_is_the_next_step_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_update_you_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_leave_the_rest_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_wait_until_the_tests_finish_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_inspect_it_next_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_inspect_tree_if_you_want_still_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_json_completion_forces_followup_for_mid_task_stop ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_json_empty_finish_reason_forces_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_json_hand_off_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_wait_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_json_hyphenated_array_parts_stay_glued ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_json_length_reason_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_json_array_content_forces_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_json_array_parts_after_punctuation_forces_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_json_array_parts_without_space_forces_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_json_input_text_array_forces_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_let_me_check_if_the_tests_pass_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_let_me_know_hand_off_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_let_me_know_if_the_tests_pass_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_json_omitted_finish_reason_still_forces_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_let_me_know_if_wrap_up_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_let_me_know_what_failed_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_let_me_see_if_the_tests_pass_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_let_me_see_if_you_need_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ci_pending_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_let_me_also_wrap_up_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_let_me_summarize_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_leaves_completed_summary_as_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_let_me_see_the_test_output_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::completed_chat_stream_without_usage_records_prompt_and_session ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_look_at_the_tree_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_max_followups_allows_configured_consecutive_stops ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_let_me_try_to_explain_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_messages_spawn_then_wait_without_mid_task_text_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_messages_two_spawns_partial_wait_forces_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_messages_unmatched_tool_does_not_reset_followup_budget ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_without_done_fails_and_does_not_record_completion ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_let_me_wait_for_the_agent_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_look_at_your_pr_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_messages_update_plan_tool_does_not_reset_followup_budget ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_messages_unresolved_spawn_forces_followup_even_without_mid_task_text ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_named_spawn_output_wait_unknown_id_keeps_child ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_messages_function_name_spawn_forces_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_wait_for_you_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_incomplete_remaining_tasks_colon_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_json_tool_call_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_observe_mode_does_not_force_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_remaining_complete_tasks_colon_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_remaining_tasks_are_done_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_remaining_tasks_are_mostly_done_colon_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_named_spawn_plus_pending_ignores_extra_unmatched_wait_id ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_remaining_tasks_header_colon_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_remaining_work_is_complete_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_remaining_work_is_incomplete_colon_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_remaining_work_summary_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_review_pending_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_sit_tight_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_spawn_then_wait_without_mid_task_text_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_remaining_work_is_not_done_colon_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_next_i_need_a_decision_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_now_let_me_summarize_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_no_issues_remaining_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_stream_array_content_forces_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_summary_and_remaining_tasks_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_nothing_pending_and_copular_pending_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_subtask_completion_does_not_suppress_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_completed_plan_does_not_block_unresolved_spawn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_keep_you_posted_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_let_me_try_running_tests_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_take_another_look_later_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_thanks_prefixed_continuation_still_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_summary_comma_remaining_tasks_colon_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_namespaced_spawn_without_wait_forces_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_take_a_look_at_the_tree_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_take_a_look_if_you_want_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_take_a_look_later_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_tasks_remaining_colon_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_the_remaining_items_colon_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_then_get_back_to_you_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_then_get_the_subagent_findings_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_then_look_at_your_pr_still_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_then_wait_a_moment_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_then_wait_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_messages_missing_tool_call_id_does_not_reset_followup_budget ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_this_is_still_pending_colon_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_then_wait_for_the_agent_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_then_run_the_tests_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_two_spawns_wait_both_object_arguments_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_trailing_colon_without_marker_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_ill_verify_now_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_then_wait_later_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_thanks_and_weak_ill_sign_off_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_then_wait_for_you_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_two_spawns_wait_both_targets_without_mid_task_text_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_two_spawns_wait_without_targets_clears_the_wave ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_two_spawns_non_array_targets_does_not_clear_open_spawns ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_two_spawns_wait_unknown_ids_keeps_named_children ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_two_spawns_unparsable_wait_does_not_clear_open_spawns ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_unmatched_function_call_output_does_not_reset_followup_budget ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_two_spawns_duplicate_wait_targets_forces_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_unresolved_spawn_agent_forces_followup_even_without_mid_task_text ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_weak_ill_without_wrap_up_still_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_work_remaining_is_done_colon_stays_end_turn ... ok
[INFO] [stdout] test response_codec::tests::cr_only_native_sse_frames_are_morphed ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_update_plan_output_does_not_reset_followup_budget ... ok
[INFO] [stdout] test response_codec::tests::custom_tool_input_unwraps_json_string ... ok
[INFO] [stdout] test response_codec::tests::chat_stream_fails_when_sse_frame_buffer_exceeds_limit ... ok
[INFO] [stdout] test response_codec::tests::downstream_stream_debug_summary_reports_reasoning_part_event ... ok
[INFO] [stdout] test response_codec::tests::custom_tool_input_extracts_input_field ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_nothing_pending_comma_remaining_tasks_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::custom_tool_input_falls_back_to_raw_on_unknown_shape ... ok
[INFO] [stdout] test response_codec::tests::done_only_chat_stream_is_not_a_completed_response ... ok
[INFO] [stdout] test response_codec::tests::namespace_function_kind_survives_a_dotted_custom_tool_collision ... ok
[INFO] [stdout] test response_codec::tests::custom_tool_provenance_wins_over_synthetic_collapsed_alias ... ok
[INFO] [stdout] test response_codec::tests::failed_chat_stream_restores_deferred_markup_content ... ok
[INFO] [stdout] test response_codec::tests::malformed_choice_does_not_complete_chat_stream ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_update_plan_tail_does_not_reset_followup_budget ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_update_the_lockfile_triggers_followup ... ok
[INFO] [stdout] test response_codec::tests::native_function_calls_for_morphed_custom_tools_are_restored ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_two_spawns_partial_wait_forces_followup_without_mid_task_text ... ok
[INFO] [stdout] test response_codec::tests::continue_guard_two_spawns_partial_wait_object_arguments_forces_followup ... ok
[INFO] [stdout] test response_codec::tests::native_completed_requires_response_object ... ok
[INFO] [stdout] test response_codec::tests::native_morph_rewrites_namespace_helper_before_custom_tool_classification ... ok
[INFO] [stdout] test response_codec::tests::native_incomplete_stream_is_forwarded_once_without_transport_failure ... ok
[INFO] [stdout] test response_codec::tests::native_response_usage_null_envelope_falls_back_to_nested_response ... ok
[INFO] [stdout] test response_codec::tests::native_incomplete_event_type_with_error_is_not_recorded ... ok
[INFO] [stdout] test response_codec::tests::malformed_chat_frame_followed_by_done_fails_without_recording_completion ... ok
[INFO] [stdout] test response_codec::tests::native_completed_with_failed_status_does_not_record_usage ... ok
[INFO] [stdout] test response_codec::tests::native_completed_without_usage_records_prompt_and_session ... ok
[INFO] [stdout] test response_codec::tests::native_incomplete_event_type_with_empty_response_is_not_recorded ... ok
[INFO] [stdout] test response_codec::tests::native_failed_stream_does_not_record_usage ... ok
[INFO] [stdout] test response_codec::tests::native_incomplete_status_records_usage ... ok
[INFO] [stdout] test response_codec::tests::native_stream_debug_summary_counts_reasoning_without_text ... ok
[INFO] [stdout] test response_codec::tests::native_incomplete_status_with_error_is_not_recorded ... ok
[INFO] [stdout] test response_codec::tests::native_stream_keepalive_does_not_flush_buffered_reasoning ... ok
[INFO] [stdout] test response_codec::tests::native_stream_reasoning_buffer_does_not_use_stale_identity_after_flush ... ok
[INFO] [stdout] test response_codec::tests::native_incomplete_event_type_records_usage ... ok
[INFO] [stdout] test response_codec::tests::native_sse_restores_custom_tools_from_tool_call_items ... ok
[INFO] [stdout] test response_codec::tests::native_sse_rewrites_namespace_helper_before_custom_tool_classification ... ok
[INFO] [stdout] test response_codec::tests::native_sse_rewrites_tool_call_items_like_function_calls ... ok
[INFO] [stdout] test response_codec::tests::native_incomplete_event_type_without_response_is_not_recorded ... ok
[INFO] [stdout] test response_codec::tests::native_stream_reasoning_summary_deltas_reset_on_different_item_id ... ok
[INFO] [stdout] test response_codec::tests::native_usage_is_recorded_only_after_a_completed_event ... ok
[INFO] [stdout] test response_codec::tests::non_stream_chat_repair_fails_closed_for_duplicate_explicit_source_ids ... ok
[INFO] [stdout] test response_codec::tests::non_stream_chat_repair_requires_a_nonempty_function_name ... ok
[INFO] [stdout] test response_codec::tests::non_stream_chat_repair_requires_a_successful_tool_call_finish ... ok
[INFO] [stdout] test response_codec::tests::non_stream_chat_repair_splits_concatenated_tool_calls ... ok
[INFO] [stdout] test response_codec::tests::non_stream_content_array_preserves_unterminated_sanitizer_tail ... ok
[INFO] [stdout] test response_codec::tests::native_stream_without_completed_event_becomes_response_failed ... ok
[INFO] [stdout] test response_codec::tests::native_stream_reasoning_summary_deltas_reset_on_different_summary_index ... ok
[INFO] [stdout] test response_codec::tests::native_stream_reasoning_summary_deltas_flush_at_paragraphs ... ok
[INFO] [stdout] test response_codec::tests::non_stream_tool_markup_suppression_handles_string_and_empty_content ... ok
[INFO] [stdout] test response_codec::tests::non_stream_tool_markup_suppression_requires_both_opt_in_and_a_named_call ... ok
[INFO] [stdout] test response_codec::tests::ordinary_dotted_custom_tool_remains_custom_beside_namespace_child ... ok
[INFO] [stdout] test response_codec::tests::ordinary_dotted_tool_and_namespace_child_route_distinctly ... ok
[INFO] [stdout] test response_codec::tests::reasoning_flush_threshold_counts_characters_not_utf8_bytes ... ok
[INFO] [stdout] test response_codec::tests::reasoning_stream_delta_handles_incremental_and_cumulative_fragments ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_preserves_concatenated_arguments_without_opt_in ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_ignores_an_empty_later_call_id ... ok
[INFO] [stdout] test response_codec::tests::native_usage_logging_buffers_split_sse_frames ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_fails_closed_for_duplicate_explicit_source_ids ... ok
[INFO] [stdout] test response_codec::tests::native_stream_reasoning_summary_deltas_are_coalesced ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_preserves_identity_after_an_empty_terminal_name ... ok
[INFO] [stdout] test response_codec::tests::native_stream_semantic_error_becomes_response_failed ... ok
[INFO] [stdout] test response_codec::tests::sse_frame_buffer_max_bytes_is_reasonable ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_rejects_ambiguous_multiple_choices_without_indexes ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_rejects_any_choice_after_terminal_finish ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_rejects_choice_changes_across_chunks ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_rejects_conflicting_successful_finish_reasons ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_rejects_tool_call_mutation_after_finish ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_remembers_identity_across_an_empty_name ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_requires_a_successful_tool_call_finish ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_requires_numeric_source_call_indexes ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_splits_concatenated_tool_calls_and_assigns_unique_ids ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_remembers_call_id_across_an_empty_id ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_keeps_unsafe_finish_history ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_stops_when_function_identity_changes ... ok
[INFO] [stdout] test response_codec::tests::streaming_chat_repair_stops_when_nonempty_call_id_changes ... ok
[INFO] [stdout] test response_codec::tests::tool_markup_suppression_applies_to_non_stream_strings_and_content_arrays ... ok
[INFO] [stdout] test response_codec::tests::tool_markup_suppression_streams_plain_text_and_restores_deferred_content_on_failure ... ok
[INFO] [stdout] test response_codec::tests::tool_markup_suppression_waits_for_a_named_native_call ... ok
[INFO] [stdout] test response_codec::tests::upstream_error_message_accepts_openai_error_shapes ... ok
[INFO] [stdout] test response_codec::tests::wrapped_chat_completion_converts_to_responses_output ... ok
[INFO] [stdout] test response_codec::tests::wrapped_chat_completion_preserves_reasoning_content ... ok
[INFO] [stdout] test response_codec::tests::wrapped_chat_text_delta_starts_with_output_item_added ... ok
[INFO] [stdout] test response_codec::tests::next_sse_frame_accepts_lf_and_crlf ... ok
[INFO] [stdout] test response_codec::tests::non_stream_chat_generates_unique_ids_for_missing_and_empty_upstream_ids ... ok
[INFO] [stdout] test response_codec::tests::non_stream_chat_repair_requires_one_unambiguous_choice ... ok
[INFO] [stdout] test server::tests::args_parse_config_overrides_and_debug_flags ... ok
[INFO] [stdout] test server::tests::blank_webui_auth_environment_name_fails_closed ... ok
[INFO] [stdout] test server::tests::initialize_state_rejects_zero_rotation_limits ... ok
[INFO] [stdout] test response_codec::tests::failed_native_stream_does_not_replace_the_active_session_model ... ok
[INFO] [stdout] test server::tests::destination_override_wins_after_overlay_replay ... ok
[INFO] [stdout] test response_codec::tests::wrapped_chat_stream_error_does_not_record_completion ... ok
[INFO] [stdout] test server::tests::warn_if_continue_guard_disabled_is_silent_when_enabled ... ok
[INFO] [stdout] test server::tests::warn_if_continue_guard_disabled_reports_stale_off_config ... ok
[INFO] [stdout] test server::tests::webui_requires_loopback_unless_remote_access_is_explicitly_enabled ... ok
[INFO] [stdout] test server::tests::webui_store_requires_enabled_ui_and_no_opt_out ... ok
[INFO] [stdout] test state::session_model_cache_tests::beginning_an_update_discards_dropped_pending_keys ... ok
[INFO] [stdout] test state::session_model_cache_tests::completing_an_update_removes_only_its_pending_entry ... ok
[INFO] [stdout] test state::session_model_cache_tests::pending_request_equal_to_the_latest_success_is_not_selected ... ok
[INFO] [stdout] test server::tests::provider_not_selected_response_uses_generic_error_for_codex_auto_review ... ok
[INFO] [stdout] test server::tests::initialize_state_allows_disabled_restricted_log_path ... ok
[INFO] [stdout] test server::tests::initialize_state_keeps_default_proxy_stateless ... ok
[INFO] [stdout] test server::tests::apply_configured_tracing_filter_uses_pinned_fallback ... ok
[INFO] [stdout] test server::tests::apply_configured_tracing_filter_reports_disabled_continue_guard ... ok
[INFO] [stdout] test response_codec::tests::native_stream_errors_when_sse_frame_buffer_exceeds_limit ... ok
[INFO] [stdout] test server::tests::destination_bootstraps_default_provider_before_overlay_replay ... ok
[INFO] [stdout] test server::tests::initialize_state_keeps_live_debug_on_the_writer_not_app_config ... ok
[INFO] [stdout] test store::tests::analytics_model_series_groups_sessions_by_model ... ok
[INFO] [stdout] test server::tests::responses_returns_provider_selection_errors_before_dispatch ... ok
[INFO] [stdout] test store::tests::anonymous_session_identity_cannot_collide_with_a_supplied_key ... ok
[INFO] [stdout] test server::tests::initialize_state_replays_persisted_overlays_and_seeds_routes ... ok
[INFO] [stdout] test store::tests::apply_overlays_corrupt_model_overlay_preserves_disabled_models ... ok
[INFO] [stdout] test store::tests::apply_overlays_catalog_json_enable_clears_toml_disabled_models ... ok
[INFO] [stdout] test store::tests::apply_overlays_does_not_resurrect_removed_primary_toml_provider ... ok
[INFO] [stdout] test store::tests::analytics_model_series_tracks_models_across_buckets_and_fills_gaps ... ok
[INFO] [stdout] test store::tests::apply_overlays_keeps_inline_api_key_for_managed_provider ... ok
[INFO] [stdout] test store::tests::apply_overlays_does_not_resurrect_removed_toml_provider ... ok
[INFO] [stdout] test store::tests::apply_overlays_replays_overlapping_model_toggles_in_mutation_order ... ok
[INFO] [stdout] test store::tests::apply_overlays_plain_catalog_enable_clears_upstream_disabled_model ... ok
[INFO] [stdout] test store::tests::apply_overlays_skips_corrupt_overlay_json ... ok
[INFO] [stdout] test store::tests::apply_overlays_preserves_toml_auth_for_non_managed_provider ... ok
[INFO] [stdout] test response_codec::tests::failed_chat_stream_does_not_replace_the_active_session_model ... ok
[INFO] [stdout] test store::tests::apply_overlays_strips_inline_api_key_from_overlay_json ... ok
[INFO] [stdout] test store::tests::clearing_provider_soft_delete_restores_prior_model_toggles ... ok
[INFO] [stdout] test server::tests::initialize_state_replays_unset_tracing_filter_with_pinned_fallback ... ok
[INFO] [stdout] test store::tests::create_provider_with_catalog_persists_provider_and_models ... ok
[INFO] [stdout] test store::tests::create_named_template_catalog_preserves_earliest_colliding_route_owner ... ok
[INFO] [stdout] test store::tests::create_named_template_catalog_does_not_preseed_disabled_colliding_owner ... ok
[INFO] [stdout] test store::tests::create_provider_with_catalog_replaces_leftover_model_overlays ... ok
[INFO] [stdout] test store::tests::debug_overlay_accepts_unset_tracing_filter_with_pinned_fallback ... ok
[INFO] [stdout] test store::tests::create_named_template_catalog_preserves_owner_at_minimum_route_order ... ok
[INFO] [stdout] test store::tests::merge_provider_overlay_preserves_request_stream_options_include_usage_when_omitted ... ok
[INFO] [stdout] test store::tests::debug_overlay_heals_legacy_relative_log_path ... ok
[INFO] [stdout] test store::tests::debug_overlay_fills_default_path_when_enabled_without_path ... ok
[INFO] [stdout] test store::tests::debug_overlay_skips_invalid_tracing_filter ... ok
[INFO] [stdout] test store::tests::debug_overlay_replays_into_config ... ok
[INFO] [stdout] test store::tests::delete_managed_model_catalog_entry_updates_provider_and_removes_model_overlay ... ok
[INFO] [stdout] test store::tests::restrict_sqlite_sidecar_mode_handles_non_utf8_filename ... ok
[INFO] [stdout] test store::tests::restrict_sqlite_sidecar_mode_tightens_wal_and_shm ... ok
[INFO] [stdout] test store::tests::debug_overlay_skips_zero_rotation_limits ... ok
[INFO] [stdout] test store::tests::managed_provider_overlay_persists_custom_headers ... ok
[INFO] [stdout] test store::tests::delete_provider_overlay_drops_row_and_managed_memory ... ok
[INFO] [stdout] test store::tests::enabled_model_route_seeds_for_provider_scopes_overlay_rows ... ok
[INFO] [stdout] test store::tests::delete_ui_created_model_overlay_keeps_toml_backed_rows ... ok
[INFO] [stdout] test store::tests::sqlite_mode_exposes_group_or_other_uses_permission_mask ... ok
[INFO] [stdout] test response_codec::tests::native_passthrough_stream_errors_when_debug_buffer_exceeds_limit ... ok
[INFO] [stdout] test store::tests::enabled_model_route_seeds_survive_store_reopen ... ok
[INFO] [stdout] test store::tests::debug_overlay_skips_restricted_log_path ... ok
[INFO] [stdout] test store::tests::persist_managed_overlay_disable_updates_provider_and_disables_model_overlay ... ok
[INFO] [stdout] test store::tests::record_completed_counts_prompt_without_usage_metadata ... ok
[INFO] [stdout] test store::tests::next_route_order_rejects_exhausted_persisted_order ... ok
[INFO] [stdout] test store::tests::usage_events_cap_untrusted_token_counts_before_aggregation ... ok
[INFO] [stdout] test store::tests::usage_identifiers_truncate_on_utf8_boundaries ... ok
[INFO] [stdout] test structured_output::tests::cache_key_uses_base_url_and_model ... ok
[INFO] [stdout] test store::tests::missing_overlay_row_stays_managed_for_this_process ... ok
[INFO] [stdout] test structured_output::tests::cache_remembers_capability_until_expiry ... ok
[INFO] [stdout] test structured_output::tests::compat_debug_event_has_no_schema_or_prompt ... ok
[INFO] [stdout] test structured_output::tests::compatibility_400_for_unavailable_response_format_is_detected ... ok
[INFO] [stdout] test structured_output::tests::generic_or_unrelated_errors_do_not_qualify_for_fallback ... ok
[INFO] [stdout] test structured_output::tests::json_object_fallback_preserves_request_and_adds_schema_instruction ... ok
[INFO] [stdout] test structured_output::tests::json_schema_capable_request_is_detected ... ok
[INFO] [stdout] test structured_output::tests::json_schema_debug_summary_omits_schema_contents ... ok
[INFO] [stdout] test tool_markup::tests::fences_require_line_position_and_valid_closing_line ... ok
[INFO] [stdout] test tool_markup::tests::incomplete_quoted_attribute_stays_incomplete ... ok
[INFO] [stdout] test tool_markup::tests::markdown_delimiters_inside_suppressed_markup_do_not_change_state ... ok
[INFO] [stdout] test structured_output::tests::fallback_instruction_is_deterministic ... ok
[INFO] [stdout] test tool_markup::tests::markdown_state_reassembles_split_fence_runs ... ok
[INFO] [stdout] test store::tests::soft_remove_model_suppresses_catalog_and_upstream_across_restart ... ok
[INFO] [stdout] test tool_markup::tests::markdown_state_tracks_inline_code_and_escapes ... ok
[INFO] [stdout] test tool_markup::tests::markup_detection_keeps_complete_and_split_recognized_tags ... ok
[INFO] [stdout] test tool_markup::tests::markdown_state_requires_matching_fence_marker_and_length ... ok
[INFO] [stdout] test tool_markup::tests::next_tag_keeps_quoted_delimiters_and_validates_closing_tags ... ok
[INFO] [stdout] test tool_markup::tests::quoted_attribute_delimiter_is_not_a_tag_delimiter ... ok
[INFO] [stdout] test tool_markup::tests::recognized_tags_are_case_insensitive_and_require_a_tag_boundary ... ok
[INFO] [stdout] test tool_markup::tests::sanitizer_drops_confirmed_incomplete_tag_prefixes_at_finish ... ok
[INFO] [stdout] test http::tests::opencode_session_header_is_scoped_and_operator_overridable ... ok
[INFO] [stdout] test tool_markup::tests::sanitizer_preserves_escaped_and_markdown_literal_markup ... ok
[INFO] [stdout] test store::tests::store_records_usage_and_aggregates_ranges ... ok
[INFO] [stdout] test tool_markup::tests::sanitizer_preserves_fence_delimiters_split_across_chunks ... ok
[INFO] [stdout] test tool_markup::tests::sanitizer_preserves_indented_code_and_resumes_after_newline ... ok
[INFO] [stdout] test store::tests::soft_removed_primary_provider_does_not_replay_retained_model_overlays ... ok
[INFO] [stdout] test tool_markup::tests::sanitizer_reassembles_an_opening_tag_split_after_its_name ... ok
[INFO] [stdout] test tool_markup::tests::sanitizer_reassembles_split_tags_and_retains_unclosed_content_at_finish ... ok
[INFO] [stdout] test tool_markup::tests::tag_classifier_retains_earliest_plausible_incomplete_tag ... ok
[INFO] [stdout] test tool_markup::tests::terminal_replays_unmatched_inline_and_resets_markdown ... ok
[INFO] [stdout] test tool_markup::tests::terminal_retains_escaped_and_unmatched_inline_literal_suffixes ... ok
[INFO] [stdout] test tool_markup::tests::tool_fallback_uses_original_markdown_position_and_marker_closing_rules ... ok
[INFO] [stdout] test tool_markup::tests::unterminated_tool_fallback_preserves_body ... ok
[INFO] [stdout] test tool_markup::tests::sanitizer_reassembles_an_opening_tag_split_inside_a_quoted_attribute ... ok
[INFO] [stdout] test store::tests::soft_remove_provider_preserves_model_overlays ... ok
[INFO] [stdout] test tool_markup::tests::sanitizer_removes_nested_elements_without_losing_quoted_self_closing_suffixes ... ok
[INFO] [stdout] test tool_markup::tests::sanitizer_tracks_nested_openings_and_ignores_mismatched_closings ... ok
[INFO] [stdout] test tool_policy::tests::command_prefix_shell_any_matches_complex_commands ... ok
[INFO] [stdout] test tool_policy::tests::compound_github_command_matches_after_leading_segment ... ok
[INFO] [stdout] test tool_policy::tests::compound_github_command_forces_manual_without_prefix_rule ... ok
[INFO] [stdout] test store::tests::store_open_restricts_database_file_mode ... ok
[INFO] [stdout] test tool_policy::tests::custom_tool_name_rules_can_match_command_arguments ... ok
[INFO] [stdout] test tool_policy::tests::deny_rule_wins_even_when_a_broader_rule_matches_first ... ok
[INFO] [stdout] test tool_policy::tests::generic_github_api_command_does_not_get_reusable_prefix ... ok
[INFO] [stdout] test store::tests::store_applies_provider_and_model_overlays ... ok
[INFO] [stdout] test tool_markup::tests::markdown_scanner_checks_dense_candidates_once ... ok
[INFO] [stdout] test tool_policy::tests::github_auth_login_requires_interactive_escalation_without_prefix ... ok
[INFO] [stdout] test tool_policy::tests::github_auth_token_with_env_assignment_is_denied ... ok
[INFO] [stdout] test tool_policy::tests::env_prefixed_github_command_forces_manual_without_prefix_rule ... ok
[INFO] [stdout] test tool_policy::tests::github_auth_token_is_denied_in_enforce_mode ... ok
[INFO] [stdout] test tool_markup::tests::sanitizer_handles_dense_and_incrementally_split_markup ... ok
[INFO] [stdout] test transform::tests::agent_messages_wait_until_all_outstanding_tool_outputs ... ok
[INFO] [stdout] test transform::tests::agent_messages_without_outstanding_calls_keep_their_input_order ... ok
[INFO] [stdout] test tool_policy::tests::github_auth_token_with_env_wrapper_is_denied ... ok
[INFO] [stdout] test transform::tests::agent_message_precedes_an_unresolved_tool_call_at_end_of_history ... ok
[INFO] [stdout] test transform::tests::can_request_stream_usage_when_provider_supports_it ... ok
[INFO] [stdout] test transform::tests::assistant_reasoning_parts_are_not_preserved_by_default ... ok
[INFO] [stdout] test transform::tests::assistant_reasoning_parts_become_reasoning_content_history_when_enabled ... ok
[INFO] [stdout] test store::tests::set_provider_enabled_refuses_to_insert_non_managed_row_for_managed_provider ... ok
[INFO] [stdout] test tool_policy::tests::github_pr_view_gets_escalation_hint ... ok
[INFO] [stdout] test transform::tests::chat_transform_rewrites_tool_choice_to_visible_name ... ok
[INFO] [stdout] test transform::tests::chat_transform_rewrites_string_and_function_tool_choice ... ok
[INFO] [stdout] test transform::tests::chat_transform_reports_redacted_diagnostics_for_dropped_fields_and_tools ... ok
[INFO] [stdout] test tool_policy::tests::github_auth_token_is_denied_in_assist_mode ... ok
[INFO] [stdout] test store::tests::upsert_debug_overlay_pins_relative_log_path ... ok
[INFO] [stdout] test transform::tests::chat_transform_replays_tool_call_history_as_visible_name ... ok
[INFO] [stdout] test store::tests::upsert_managed_provider_overlay_persists_api_key ... ok
[INFO] [stdout] test transform::tests::chat_transform_rewrites_allowed_tools_tool_choice ... ok
[INFO] [stdout] test transform::tests::chat_transform_does_not_passthrough_nameless_responses_tools ... ok
[INFO] [stdout] test tool_policy::tests::github_auth_token_with_env_split_string_is_denied ... ok
[INFO] [stdout] test debug_log::tests::log_age_anchor_prefers_created_over_modified ... ok
[INFO] [stdout] test store::tests::opening_legacy_model_overlay_rows_defaults_them_to_not_ui_created ... ok
[INFO] [stdout] test tool_policy::tests::multiline_github_command_forces_manual_without_prefix_rule ... ok
[INFO] [stdout] test transform::tests::consecutive_tool_calls_are_grouped_before_tool_outputs ... ok
[INFO] [stdout] test transform::tests::current_collaboration_history_replays_split_namespace_calls ... ok
[INFO] [stdout] test transform::tests::custom_tool_call_history_uses_json_arguments ... ok
[INFO] [stdout] test transform::tests::history_replays_collapsed_helper_calls_as_visible_children ... ok
[INFO] [stdout] test transform::tests::native_agent_messages_are_preserved_exactly_when_provider_supports_them ... ok
[INFO] [stdout] test store::tests::upsert_provider_overlay_strips_custom_headers ... ok
[INFO] [stdout] test transform::tests::codec_split_assistant_reasoning_moves_to_following_tool_call ... ok
[INFO] [stdout] test transform::tests::encrypted_agent_message_is_not_silently_dropped ... ok
[INFO] [stdout] test transform::tests::native_agent_messages_are_standardized_before_input_morphs ... ok
[INFO] [stdout] test transform::tests::interleaved_agent_message_does_not_split_parallel_tool_calls ... ok
[INFO] [stdout] test transform::tests::native_agent_message_is_released_only_by_matching_tool_output ... ok
[INFO] [stdout] test transform::tests::native_agent_messages_become_standard_responses_messages ... ok
[INFO] [stdout] test transform::tests::native_agent_message_precedes_an_unresolved_tool_call_at_end_of_history ... ok
[INFO] [stdout] test transform::tests::namespace_children_yield_when_a_later_function_already_owns_the_name ... ok
[INFO] [stdout] test transform::tests::native_agent_message_preservation_precedes_input_rename_without_rewriting ... ok
[INFO] [stdout] test transform::tests::native_agent_messages_wait_until_all_outstanding_tool_outputs ... ok
[INFO] [stdout] test transform::tests::native_functions_namespace_preserves_ordinary_encrypted_metadata ... ok
[INFO] [stdout] test transform::tests::native_responses_preserves_responses_fields_by_default ... ok
[INFO] [stdout] test transform::tests::native_ordinary_encrypted_history_preserves_metadata_without_namespaces ... ok
[INFO] [stdout] test transform::tests::native_responses_expand_namespace_tools ... ok
[INFO] [stdout] test transform::tests::native_responses_morphs_additional_tools ... ok
[INFO] [stdout] test transform::tests::native_responses_preserve_structured_custom_tool_call_input ... ok
[INFO] [stdout] test transform::tests::native_interleaved_agent_message_does_not_split_parallel_tool_calls ... ok
[INFO] [stdout] test transform::tests::converts_custom_tools_to_chat_functions_by_default ... ok
[INFO] [stdout] test transform::tests::developer_message_role_becomes_system_for_chat ... ok
[INFO] [stdout] test transform::tests::native_responses_replay_tool_call_history_with_visible_name ... ok
[INFO] [stdout] test transform::tests::plaintext_agent_messages_preserve_task_and_mailbox_context ... ok
[INFO] [stdout] test transform::tests::pending_reasoning_is_retained_across_tool_outputs ... ok
[INFO] [stdout] test transform::tests::preserves_explicit_stream_options ... ok
[INFO] [stdout] test store::tests::upsert_toml_backed_provider_overlay_strips_api_key ... ok
[INFO] [stdout] test transform::tests::native_responses_replay_collapsed_history_as_visible_child ... ok
[INFO] [stdout] test transform::tests::reasoning_only_assistant_shard_collapses_to_tool_call_message ... ok
[INFO] [stdout] test transform::tests::native_responses_replay_custom_tool_call_history_with_visible_name ... ok
[INFO] [stdout] test transform::tests::separate_reasoning_item_becomes_next_assistant_reasoning_content ... ok
[INFO] [stdout] test transform::tests::orphan_reasoning_before_user_message_is_not_attached_to_later_assistant ... ok
[INFO] [stdout] test transform::tests::native_responses_replay_history_and_tool_choice_with_visible_names ... ok
[INFO] [stdout] test transform::tests::separate_reasoning_item_becomes_next_assistant_tool_call_reasoning_content ... ok
[INFO] [stdout] test transform::tests::native_responses_replay_string_and_function_tool_choice ... ok
[INFO] [stdout] test transform::tests::static_string_morph_sets_provider_fields ... ok
[INFO] [stdout] test transform::tests::non_object_function_call_history_arguments_are_wrapped_for_chat ... ok
[INFO] [stdout] test transform::tests::string_input_becomes_user_chat_message ... ok
[INFO] [stdout] test transform::tests::ordinary_dotted_history_and_choice_survive_namespace_runtime_collision ... ok
[INFO] [stdout] test transform_morph::tests::strip_disabled_reasoning_effort_preserves_disable_values_for_rename_only_families ... ok
[INFO] [stdout] test transform_morph::tests::strip_disabled_reasoning_effort_removes_disable_values_for_thinking_type_families ... ok
[INFO] [stdout] test transform_morph::tests::reasoning_effort_none_value_is_noop_when_unset ... ok
[INFO] [stdout] test transform_morph::tests::reasoning_effort_none_value_remaps_none_in_top_level_and_reasoning_object ... ok
[INFO] [stdout] test upstream::tests::chat_completion_requires_choices_array ... ok
[INFO] [stdout] test transform_morph::tests::strip_disabled_reasoning_effort_removes_none_value_for_thinking_type_families ... ok
[INFO] [stdout] test transform::tests::translates_reasoning_effort_to_provider_thinking_type ... ok
[INFO] [stdout] test transform::tests::translates_responses_fields_to_chat_fields ... ok
[INFO] [stdout] test transform::tests::truncated_function_call_history_arguments_are_replayed_as_empty_object ... ok
[INFO] [stdout] test transform::tests::unknown_split_namespace_history_and_choice_keep_distinct_identity ... ok
[INFO] [stdout] test transform_morph::tests::apply_reasoning_effort_none_value_remaps_disable_synonyms ... ok
[INFO] [stdout] test transform_morph::tests::reasoning_effort_aliases_remap_top_level_and_native_reasoning_values ... ok
[INFO] [stdout] test transform_morph::tests::reasoning_effort_none_value_keeps_other_levels ... ok
[INFO] [stdout] test transform_morph::tests::reasoning_effort_to_thinking_type_maps_supported_values ... ok
[INFO] [stdout] test transform_morph::tests::responses_text_format_to_chat_supplies_codex_defaults ... ok
[INFO] [stdout] test transform::tests::expands_multi_agent_namespace_into_spawn_agent_helpers ... ok
[INFO] [stdout] test transform::tests::includes_responses_lite_additional_tools ... ok
[INFO] [stdout] test upstream::tests::generic_400_does_not_retry_structured_output ... ok
[INFO] [stdout] test upstream::tests::guardian_request_does_not_receive_subagent_helper_clarification ... ok
[INFO] [stdout] test upstream::tests::json_object_capability_cache_skips_known_failing_json_schema ... ok
[INFO] [stdout] test upstream::tests::custom_v2_namespace_is_rejected_before_native_forwarding ... ok
[INFO] [stdout] test upstream::tests::invalid_tool_json_schema_does_not_retry_structured_output ... ok
[INFO] [stdout] test upstream::tests::guardian_shim_does_not_override_upstream_deny_outcome ... ok
[INFO] [stdout] test upstream::tests::cached_json_object_unrelated_failure_is_forwarded ... ok
[INFO] [stdout] test upstream::tests::guardian_request_receives_compatibility_clarification ... ok
[INFO] [stdout] test upstream::tests::encrypted_v2_family_named_multi_agent_v1_is_rejected ... ok
[INFO] [stdout] test upstream::tests::cached_json_object_format_rejection_marks_unsupported ... ok
[INFO] [stdout] test upstream::tests::custom_v2_namespace_is_rejected_before_chat_forwarding ... ok
[INFO] [stdout] test upstream::tests::guardian_inventory_does_not_trigger_custom_v2_rejection ... ok
[INFO] [stdout] test upstream::tests::native_guardian_request_skips_subagent_clarification ... ok
[INFO] [stdout] test upstream::tests::native_subagent_clarification_obeys_final_provider_morphs ... ok
[INFO] [stdout] test upstream::tests::nested_native_response_drives_error_and_completion_validation ... ok
[INFO] [stdout] test upstream::tests::native_unrelated_namespace_does_not_receive_subagent_clarification ... ok
[INFO] [stdout] test upstream::tests::namespace_request_receives_subagent_helper_clarification ... ok
[INFO] [stdout] test upstream::tests::ordinary_chat_request_without_schema_is_unchanged ... ok
[INFO] [stdout] test upstream::tests::rewrite_model_for_upstream_preserves_prefixed_catalog_id_without_upstream_id ... ok
[INFO] [stdout] test upstream::tests::rewrite_model_for_upstream_preserves_vendor_model_ids_for_live_catalog_providers ... ok
[INFO] [stdout] test upstream::tests::rewrite_model_for_upstream_strips_gateway_prefix_for_unknown_catalog_models ... ok
[INFO] [stdout] test upstream::tests::rewrite_model_for_upstream_uses_catalog_alias_for_review_model ... ok
[INFO] [stdout] test upstream::tests::rewrite_model_for_upstream_uses_manual_catalog_alias ... ok
[INFO] [stdout] test upstream::tests::guardian_text_format_uses_structured_output_fallback ... ok
[INFO] [stdout] test upstream::tests::semantic_completion_accepts_incomplete_for_usage ... ok
[INFO] [stdout] test upstream::tests::semantic_completion_rejects_error_envelopes_and_failed_responses ... ok
[INFO] [stdout] test upstream::tests::semantic_error_normalization_applies_only_to_successful_native_responses ... ok
[INFO] [stdout] test upstream::tests::streaming_requires_successful_sse_upstream_response ... ok
[INFO] [stdout] test upstream::tests::semantic_completion_requires_a_json_response_payload ... ok
[INFO] [stdout] test upstream::tests::json_schema_capable_upstream_is_not_retried ... ok
[INFO] [stdout] test upstream::tests::native_stream_json_error_surfaces_provider_message_before_framing_error ... ok
[INFO] [stdout] test upstream::tests::native_stream_request_preserves_upstream_json_error_status_and_body ... ok
[INFO] [stdout] test upstream::tests::native_proxy_standardizes_agent_message_input ... ok
[INFO] [stdout] test upstream::tests::native_proxy_preserves_agent_message_for_capable_provider ... ok
[INFO] [stdout] test upstream::tests::native_namespace_request_receives_alias_aware_subagent_clarification ... ok
[INFO] [stdout] test upstream::tests::native_proxy_forwards_a_completed_response ... ok
[INFO] [stdout] test upstream::tests::wrapped_chat_payload_drives_error_and_usage_inspection ... ok
[INFO] [stdout] test version::tests::selected_version_defaults_to_the_package_version ... ok
[INFO] [stdout] test version::tests::selected_version_uses_the_build_override ... ok
[INFO] [stdout] test upstream::tests::response_format_param_with_unrelated_message_does_not_retry ... ok
[INFO] [stdout] test upstream::tests::native_subagent_clarification_and_caller_instruction_are_renamed_together ... ok
[INFO] [stdout] test version::tests::user_agent_reports_codex_warp_name_and_selected_build_version ... ok
[INFO] [stdout] test webui::tests::analytics_filters_persist_for_the_browser_session_and_restore_safely ... ok
[INFO] [stdout] test webui::tests::adding_disabled_catalog_alias_preserves_upstream_suppression ... ok
[INFO] [stdout] test webui::tests::analytics_chart_tooltips_and_summary_include_cached_tokens ... ok
[INFO] [stdout] test webui::tests::apply_logging_persist_fills_default_path_when_enabled_without_path ... ok
[INFO] [stdout] test webui::tests::analytics_footer_overlay_is_not_duplicated_into_chart_math_or_app ... ok
[INFO] [stdout] test webui::tests::analytics_inactive_charts_are_hidden_for_filter_state ... ok
[INFO] [stdout] test webui::tests::analytics_range_parse_matches_webui_query_values ... ok
[INFO] [stdout] test upstream::tests::encrypted_v2_name_collision_is_forwarded_on_both_wire_paths ... ok
[INFO] [stdout] test webui::tests::apply_provider_persist_clears_opposite_credential ... ok
[INFO] [stdout] test webui::tests::apply_provider_persist_null_clears_inline_api_key_and_headers ... ok
[INFO] [stdout] test upstream::tests::native_invalid_success_body_is_not_recorded_as_completed ... ok
[INFO] [stdout] test webui::tests::apply_logging_persist_rejects_invalid_tracing_filter ... ok
[INFO] [stdout] test webui::tests::apply_provider_persist_clearing_env_also_clears_inline_secret ... ok
[INFO] [stdout] test upstream::tests::json_object_fallback_failure_returns_structured_output_error ... ok
[INFO] [stdout] test webui::tests::build_model_views_skips_routed_upstream_alias_for_catalog_entry ... ok
[INFO] [stdout] test webui::tests::bundled_named_provider_view_sets_named_template ... ok
[INFO] [stdout] test upstream::tests::json_object_fallback_unrelated_failure_is_forwarded ... ok
[INFO] [stdout] test upstream::tests::unavailable_json_schema_retries_once_with_json_object ... ok
[INFO] [stdout] test webui::tests::authenticated_router_builds_without_panicking ... ok
[INFO] [stdout] test webui::tests::add_model_promotes_exact_discovered_slug_without_persisting_inherited_modes ... ok
[INFO] [stdout] test webui::tests::build_provider_view_separates_inline_secret_from_resolved_auth ... ok
[INFO] [stdout] test webui::tests::create_provider_body_accepts_named_template_payload ... ok
[INFO] [stdout] test webui::tests::build_model_views_includes_routed_upstream_models ... ok
[INFO] [stdout] test webui::tests::default_only_reasoning_is_validated_without_discovery ... ok
[INFO] [stdout] test upstream::tests::unrelated_encrypted_namespace_is_forwarded_on_both_wire_paths ... ok
[INFO] [stdout] test upstream::tests::unsupported_structured_output_cache_skips_later_requests ... ok
[INFO] [stdout] test upstream::tests::response_format_param_without_diagnostic_does_not_retry ... ok
[INFO] [stdout] test webui::tests::build_model_views_keeps_intrinsic_model_enablement_when_provider_disabled ... ok
[INFO] [stdout] test webui::tests::add_model_rejects_invalid_default_only_reasoning_without_discovery ... ok
[INFO] [stdout] test webui::tests::catalog_model_view_composes_explicit_modes_over_discovery ... ok
[INFO] [stdout] test webui::tests::delete_model_soft_removes_toml_catalog_after_an_edit ... ok
[INFO] [stdout] test webui::tests::catalog_upsert_changing_alias_rebuilds_retired_collision ... ok
[INFO] [stdout] test webui::tests::discovery_settings_changed_detects_credential_request_edits ... ok
[INFO] [stdout] test webui::tests::discovery_settings_changed_detects_endpoint_and_catalog_mode ... ok
[INFO] [stdout] test webui::tests::catalog_toggle_off_writes_upstream_alias_into_disabled_models ... ok
[INFO] [stdout] test webui::tests::create_provider_reused_id_evicts_stale_routes_before_config_is_visible ... ok
[INFO] [stdout] test webui::tests::delete_model_removes_ui_added_model_for_non_managed_provider ... ok
[INFO] [stdout] test webui::tests::catalog_update_changing_alias_rebuilds_retired_collision ... ok
[INFO] [stdout] test webui::tests::enabling_catalog_model_clears_disabled_models ... ok
[INFO] [stdout] test webui::tests::catalog_upsert_disabling_model_rebuilds_its_route ... ok
[INFO] [stdout] test webui::tests::delete_model_removes_managed_overlay_model ... ok
[INFO] [stdout] test webui::tests::ensure_provider_exists_before_overlay_for_set_provider_enabled ... ok
[INFO] [stdout] test webui::tests::catalog_update_disabling_model_rebuilds_its_route ... ok
[INFO] [stdout] test webui::tests::get_logging_reads_live_snapshot_without_waiting_for_mutation_lock ... FAILED
[INFO] [stdout] test webui::tests::insert_model_route_caches_disabled_provider_without_publishing_live_route ... ok
[INFO] [stdout] test webui::tests::completing_mutation_rejects_fallback_built_from_intermediate_seed_cache ... ok
[INFO] [stdout] test webui::tests::is_truncated_env_name_matches_loaded_name_not_secret_shape ... ok
[INFO] [stdout] test webui::tests::disabled_provider_creation_caches_claims_for_failed_reenable_read ... ok
[INFO] [stdout] test webui::tests::javascript_credential_helpers_stay_in_sync_with_rust ... ok
[INFO] [stdout] test webui::tests::javascript_credential_state_machine_locks_inline_keys ... ok
[INFO] [stdout] test webui::tests::javascript_normalizes_caught_errors_for_status ... ok
[INFO] [stdout] test webui::tests::javascript_omits_untouched_stream_usage_and_sends_null_to_inherit ... ok
[INFO] [stdout] test webui::tests::levels_only_edit_auto_defaults_when_inherited_default_excluded ... ok
[INFO] [stdout] test webui::tests::delete_provider_returns_no_content_and_drops_managed_overlay ... ok
[INFO] [stdout] test webui::tests::logging_persist_deserializes_omitted_as_absent ... ok
[INFO] [stdout] test webui::tests::logging_persist_omitted_fields_preserve_live_snapshot ... ok
[INFO] [stdout] test webui::tests::logging_persist_rejects_non_integer_rotation_limits ... ok
[INFO] [stdout] test webui::tests::logging_persist_deserializes_null_as_clear ... ok
[INFO] [stdout] test webui::tests::discovered_model_view_uses_provider_scoped_reasoning_metadata_when_disabled ... ok
[INFO] [stdout] test webui::tests::enabling_provider_route_snapshot_is_cancellation_safe ... ok
[INFO] [stdout] test webui::tests::identity_edit_failure_recovers_overlay_routes_from_cached_provenance ... ok
[INFO] [stdout] test webui::tests::insert_model_route_repoints_existing_owner ... ok
[INFO] [stdout] test webui::tests::failed_catalog_refresh_retains_successful_seed_snapshot_for_fallback ... ok
[INFO] [stdout] test webui::tests::discovery_refetch_keeps_live_only_routes_when_upstream_fetch_fails ... ok
[INFO] [stdout] test webui::tests::focused_refetch_retains_sibling_live_routes_and_ownership ... ok
[INFO] [stdout] test webui::tests::enabling_unknown_provider_is_rejected_even_when_other_providers_exist ... ok
[INFO] [stdout] test webui::tests::logging_settings_report_tracing_unapplied_without_reload_handle ... ok
[INFO] [stdout] test webui::tests::disabling_provider_refetches_live_only_fallback_owner ... ok
[INFO] [stdout] test webui::tests::looks_like_masked_api_key_preview_matches_mask_shape ... ok
[INFO] [stdout] test webui::tests::list_providers_returns_configured_provider_views ... ok
[INFO] [stdout] test webui::tests::looks_like_env_var_name_matches_webui_classifier ... ok
[INFO] [stdout] test webui::tests::management_ui_app_javascript_prefixes_footer_status ... ok
[INFO] [stdout] test webui::tests::enabling_provider_primes_seed_cache_before_store_read_failure ... ok
[INFO] [stdout] test webui::tests::management_ui_responses_cannot_be_framed ... ok
[INFO] [stdout] test webui::tests::management_ui_app_javascript_source_map_covers_concat_sections ... ok
[INFO] [stdout] test webui::tests::management_ui_index_loads_chart_math_before_app ... ok
[INFO] [stdout] test webui::tests::create_provider_rejects_invalid_reasoning_catalog ... ok
[INFO] [stdout] test webui::tests::management_ui_serves_chart_math_javascript ... ok
[INFO] [stdout] test webui::tests::model_catalog_rejects_duplicate_ids_before_persistence ... ok
[INFO] [stdout] test webui::tests::model_form_preserves_missing_catalog_upstream_id_but_seeds_promotions ... ok
[INFO] [stdout] test webui::tests::create_provider_honors_nonempty_custom_template ... ok
[INFO] [stdout] test webui::tests::model_persist_deserializes_omitted_enabled_as_none ... ok
[INFO] [stdout] test webui::tests::model_persist_omitted_enabled_preserves_existing_value ... ok
[INFO] [stdout] test webui::tests::model_reasoning_validation_resolves_default_only_against_discovery ... ok
[INFO] [stdout] test webui::tests::model_form_requires_an_upstream_id_only_when_creating ... ok
[INFO] [stdout] test webui::tests::model_persist_clear_optional_fields ... ok
[INFO] [stdout] test webui::tests::invalidating_model_discovery_advances_the_revision_before_route_refresh ... ok
[INFO] [stdout] test webui::tests::logging_update_rejects_zero_rotation_limits ... ok
[INFO] [stdout] test webui::tests::mask_api_key_shows_prefix_and_suffix ... ok
[INFO] [stdout] test webui::tests::model_editor_promotes_discovered_rows_without_freezing_unchanged_modes ... ok
[INFO] [stdout] test webui::tests::named_template_create_rejects_truncated_env_replacement ... ok
[INFO] [stdout] test webui::tests::named_template_credentials_apply_headers_without_replacing_catalog ... ok
[INFO] [stdout] test webui::tests::normalize_provider_api_key_fields_keeps_unset_env_name ... ok
[INFO] [stdout] test webui::tests::normalize_provider_api_key_fields_reclassified_secret_wins_over_api_key_clear ... ok
[INFO] [stdout] test webui::tests::normalize_provider_api_key_fields_treats_empty_api_key_as_clear ... ok
[INFO] [stdout] test webui::tests::normalize_provider_api_key_fields_treats_empty_api_key_env_as_absent ... ok
[INFO] [stdout] test webui::tests::normalize_provider_api_key_fields_treats_raw_secret_as_api_key ... ok
[INFO] [stdout] test webui::tests::normalize_provider_api_key_fields_treats_underscore_secret_as_api_key ... ok
[INFO] [stdout] test webui::tests::normalize_provider_api_key_fields_treats_uppercase_token_without_underscore_as_api_key ... ok
[INFO] [stdout] test webui::tests::logging_update_applies_without_store ... ok
[INFO] [stdout] test webui::tests::logging_settings_apply_live_and_persist ... ok
[INFO] [stdout] test webui::tests::one_mutation_cannot_exhaust_model_discovery_retries_at_both_revision_boundaries ... ok
[INFO] [stdout] test webui::tests::model_route_epoch_cannot_select_retired_colliding_alias_owner ... ok
[INFO] [stdout] test webui::tests::provider_form_exposes_editable_catalog_only ... ok
[INFO] [stdout] test webui::tests::provider_form_matches_credential_and_header_ownership ... ok
[INFO] [stdout] test webui::tests::manual_provider_snapshot_does_not_capture_named_template_classification ... ok
[INFO] [stdout] test webui::tests::managed_provider_view_exposes_only_masked_api_key ... ok
[INFO] [stdout] test webui::tests::logging_update_keeps_applied_live_settings_when_overlay_persist_fails ... ok
[INFO] [stdout] test webui::tests::provider_identity_edit_reassigns_live_routes_when_refetch_fails ... ok
[INFO] [stdout] test webui::tests::model_disable_endpoint_rebuilds_colliding_sibling_route ... ok
[INFO] [stdout] test webui::tests::provider_identity_edit_clears_prior_discovery_snapshot ... ok
[INFO] [stdout] test webui::tests::named_template_view_uses_persisted_suffixed_duplicate_provenance ... ok
[INFO] [stdout] test webui::tests::provider_enable_preserves_global_persisted_claim_order ... ok
[INFO] [stdout] test webui::tests::provider_persist_deserializes_null_as_clear ... ok
[INFO] [stdout] test webui::tests::provider_persist_apply_to_preserves_api_key_when_not_set ... ok
[INFO] [stdout] test webui::tests::provider_persist_deserializes_null_api_key_and_headers_as_clear ... ok
[INFO] [stdout] test webui::tests::provider_persist_deserializes_omitted_as_absent ... ok
[INFO] [stdout] test webui::tests::provider_persist_deserializes_stream_usage_omit_and_null ... ok
[INFO] [stdout] test webui::tests::provider_persist_null_clears_optional_name_and_api_key_env ... ok
[INFO] [stdout] test webui::tests::provider_persist_sets_request_stream_options_include_usage ... ok
[INFO] [stdout] test webui::tests::reject_truncated_env_replacement_blocks_reclassified_prefix ... ok
[INFO] [stdout] test webui::tests::named_template_create_honors_request_stream_options_include_usage ... ok
[INFO] [stdout] test webui::tests::provider_disable_routing_epoch_evicts_live_routes_before_config_is_visible ... ok
[INFO] [stdout] test webui::tests::provider_creation_evicts_cached_rows_from_prior_identity ... ok
[INFO] [stdout] test webui::tests::remove_provider_model_routes_updates_live_and_cached_routes ... ok
[INFO] [stdout] test webui::tests::removing_model_route_reassigns_a_shared_catalog_slug ... ok
[INFO] [stdout] test webui::tests::named_template_create_honors_model_catalog_only ... ok
[INFO] [stdout] test webui::tests::route_epoch_eviction_only_removes_the_target_provider ... ok
[INFO] [stdout] test webui::tests::provider_model_refresh_failure_is_atomic ... ok
[INFO] [stdout] test webui::tests::remove_model_routes_only_removes_target_provider_ownership ... ok
[INFO] [stdout] test webui::tests::router_builds_without_panicking ... ok
[INFO] [stdout] test webui::tests::reenable_read_failure_uses_disabled_providers_cached_provenance ... ok
[INFO] [stdout] test webui::tests::set_live_logging_keeps_snapshot_when_tracing_reload_fails ... ok
[INFO] [stdout] test webui::tests::logging_settings_report_tracing_lag_when_requested_filter_is_cleared ... ok
[INFO] [stdout] test webui::tests::logging_update_keeps_applied_tracing_filter_when_overlay_persist_fails ... ok
[INFO] [stdout] test webui::tests::reenable_soft_deleted_catalog_model_restores_live_catalog_entry ... ok
[INFO] [stdout] test webui::tests::set_live_logging_skips_tracing_reload_when_filter_unchanged ... ok
[INFO] [stdout] test webui::tests::set_live_logging_rejects_restricted_path_without_reloading_tracing ... ok
[INFO] [stdout] test webui::tests::toml_backed_provider_cannot_change_api_key_env ... ok
[INFO] [stdout] test webui::tests::set_live_logging_does_not_publish_when_writer_apply_fails ... ok
[INFO] [stdout] test webui::tests::set_live_logging_commits_the_live_snapshot ... ok
[INFO] [stdout] test webui::tests::logging_settings_use_pinned_fallback_when_snapshot_filter_is_unset ... ok
[INFO] [stdout] test webui::tests::unauthenticated_local_api_rejects_dns_rebinding_hosts ... ok
[INFO] [stdout] test webui::tests::unique_provider_id_suffixes_use_sanitized_base ... ok
[INFO] [stdout] test webui::tests::unrelated_edit_does_not_auto_default_persisted_levels_only_override ... ok
[INFO] [stdout] test webui::tests::unique_provider_id_skips_bundled_template_ids ... ok
[INFO] [stdout] test webui::tests::route_refreshes_filter_cached_seeds_after_store_read_failure ... ok
[INFO] [stdout] test webui::tests::provider_model_refresh_replaces_routes_over_http ... ok
[INFO] [stdout] test webui::tests::model_update_waits_for_route_epoch_before_durable_publication ... ok
[INFO] [stdout] test webui::tests::validate_provider_persist_accepts_distinct_headers ... ok
[INFO] [stdout] test webui::tests::validate_provider_persist_allows_single_bullet_in_secret ... ok
[INFO] [stdout] test webui::tests::validate_provider_persist_rejects_api_key_and_api_key_env_together ... ok
[INFO] [stdout] test webui::tests::validate_provider_persist_rejects_case_insensitive_duplicate_headers ... ok
[INFO] [stdout] test webui::tests::validate_provider_persist_rejects_empty_and_whitespace_header_names ... ok
[INFO] [stdout] test webui::tests::validate_provider_persist_rejects_empty_base_url ... ok
[INFO] [stdout] test webui::tests::validate_provider_persist_rejects_invalid_http_header_names ... ok
[INFO] [stdout] test webui::tests::toml_backed_provider_cannot_change_inline_api_key ... ok
[INFO] [stdout] test webui::tests::validate_provider_persist_rejects_invalid_http_header_values ... ok
[INFO] [stdout] test webui::tests::webui_app_bundle_joins_fragments_on_a_line_boundary ... ok
[INFO] [stdout] test webui::tests::validate_provider_persist_rejects_masked_preview_credentials ... ok
[INFO] [stdout] test webui::tests::webui_offers_provider_scoped_model_refresh ... ok
[INFO] [stdout] test webui::tests::set_live_logging_rejects_restricted_path_without_mutating_state ... ok
[INFO] [stdout] test webui::tests::webui_app_includes_model_and_pie_chart_renderers ... ok
[INFO] [stdout] test webui::tests::provider_model_refresh_rejects_ineligible_providers ... ok
[INFO] [stdout] test webui::tests::named_template_create_allows_duplicate_instances_and_names ... ok
[INFO] [stdout] test webui::tests::set_provider_enabled_recreates_vanished_managed_overlay ... ok
[INFO] [stdout] test webui::tests::toml_backed_provider_cannot_claim_template_provenance_from_overlay ... ok
[INFO] [stdout] test webui::tests::removing_model_route_refetches_live_only_fallback_owner ... ok
[INFO] [stdout] test webui::tests::update_model_allows_unrelated_edit_with_persisted_default_only_without_discovery ... ok
[INFO] [stdout] test webui::tests::update_disabled_provider_identity_does_not_refresh_route_seeds ... ok
[INFO] [stdout] test webui::tests::set_provider_enabled_keeps_existing_managed_overlay_json ... ok
[INFO] [stdout] test webui::tests::update_disabled_provider_identity_does_not_wait_for_route_epoch ... ok
[INFO] [stdout] test webui::tests::set_provider_enabled_disable_evicts_live_routes_in_same_epoch ... ok
[INFO] [stdout] test webui::tests::set_provider_enabled_true_does_not_wait_for_route_epoch ... ok
[INFO] [stdout] test webui::tests::update_provider_enable_change_reconciles_catalog_routes ... ok
[INFO] [stdout] test webui::tests::provider_identity_routing_epoch_never_pairs_old_routes_with_new_destination ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- debug_log::tests::apply_config_stores_relative_log_path_as_the_resolved_destination stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'debug_log::tests::apply_config_stores_relative_log_path_as_the_resolved_destination' (3173) panicked at src/debug_log_tests.rs:923:6:
[INFO] [stdout] apply relative: "cannot open debug log /opt/rustwide/workdir/relative-debug.jsonl: Read-only file system (os error 30)"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b8634dfabb1 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5b8634e1366a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5b8634e0058c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5b8634dd2306 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5b8634df0f39 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5b863474af20 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5b8634df1262 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5b8634dd23b2 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5b8634dca6b9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5b8634dd354d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5b8634e13e8c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5b8634e13c62 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5b863442f74b - codex_warp[5fdddabaa526cb0]::debug_log::tests::apply_config_stores_relative_log_path_as_the_resolved_destination
[INFO] [stdout]   13:     0x5b86343a5669 - <codex_warp[5fdddabaa526cb0]::debug_log::tests::apply_config_stores_relative_log_path_as_the_resolved_destination::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x5b863473e20b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   15:     0x5b863474b875 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   16:     0x5b8634745134 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x5b863474e9d2 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x5b8634df9b79 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x7930fafe7dfa - <unknown>
[INFO] [stdout]   20:     0x7930fb07b3d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- debug_log::tests::apply_config_fills_default_path_when_enabled_without_path stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'debug_log::tests::apply_config_fills_default_path_when_enabled_without_path' (3167) panicked at src/debug_log_tests.rs:909:6:
[INFO] [stdout] enable with default path: "cannot open debug log /opt/rustwide/workdir/codex-warp-debug.jsonl: Read-only file system (os error 30)"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b8634dfabb1 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5b8634e1366a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5b8634e0058c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5b8634dd2306 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5b8634df0f39 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5b863474af20 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5b8634df1262 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5b8634dd23b2 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5b8634dca6b9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5b8634dd354d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5b8634e13e8c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5b8634e13c62 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5b8634429e1d - codex_warp[5fdddabaa526cb0]::debug_log::tests::apply_config_fills_default_path_when_enabled_without_path
[INFO] [stdout]   13:     0x5b86343a5549 - <codex_warp[5fdddabaa526cb0]::debug_log::tests::apply_config_fills_default_path_when_enabled_without_path::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x5b863473e20b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   15:     0x5b863474b875 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   16:     0x5b8634745134 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x5b863474e9d2 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x5b8634df9b79 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x7930fafe7dfa - <unknown>
[INFO] [stdout]   20:     0x7930fb07b3d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- webui::tests::get_logging_reads_live_snapshot_without_waiting_for_mutation_lock stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'webui::tests::get_logging_reads_live_snapshot_without_waiting_for_mutation_lock' (3991) panicked at src/webui_tests.rs:6154:10:
[INFO] [stdout] publish live snapshot: "cannot open debug log /opt/rustwide/workdir/codex-warp-debug.jsonl: Read-only file system (os error 30)"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b8634dfabb1 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5b8634e1366a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5b8634e0058c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5b8634dd2306 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5b8634df0f39 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5b863474af20 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5b8634df1262 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5b8634dd23b2 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5b8634dca6b9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5b8634dd354d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5b8634e13e8c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5b8634e13c62 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5b8634200d98 - codex_warp[5fdddabaa526cb0]::webui::tests::get_logging_reads_live_snapshot_without_waiting_for_mutation_lock::{closure#0}
[INFO] [stdout]   13:     0x5b86343a6eb3 - <tokio[de9db3aa275b231e]::runtime::scheduler::current_thread::Context>::enter::<core[df12db4294e9bfd3]::task::poll::Poll<()>, <tokio[de9db3aa275b231e]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x5b86345164cc - <tokio[de9db3aa275b231e]::runtime::context::scoped::Scoped<tokio[de9db3aa275b231e]::runtime::scheduler::Context>>::set::<<tokio[de9db3aa275b231e]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[de9db3aa275b231e]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}, core[df12db4294e9bfd3]::option::Option<()>>::{closure#0}, (alloc[2182bb758b4b3781]::boxed::Box<tokio[de9db3aa275b231e]::runtime::scheduler::current_thread::Core>, core[df12db4294e9bfd3]::option::Option<()>)>
[INFO] [stdout]   15:     0x5b86343ac667 - <tokio[de9db3aa275b231e]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>
[INFO] [stdout]   16:     0x5b86345253db - tokio[de9db3aa275b231e]::runtime::context::runtime::enter_runtime::<<tokio[de9db3aa275b231e]::runtime::scheduler::current_thread::CurrentThread>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>::{closure#0}, ()>
[INFO] [stdout]   17:     0x5b8634678e45 - <tokio[de9db3aa275b231e]::runtime::runtime::Runtime>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   18:     0x5b86342380eb - codex_warp[5fdddabaa526cb0]::webui::tests::get_logging_reads_live_snapshot_without_waiting_for_mutation_lock
[INFO] [stdout]   19:     0x5b86343939f9 - <codex_warp[5fdddabaa526cb0]::webui::tests::get_logging_reads_live_snapshot_without_waiting_for_mutation_lock::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   20:     0x5b863473e20b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   21:     0x5b863474b875 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   22:     0x5b8634745134 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   23:     0x5b863474e9d2 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   24:     0x5b8634df9b79 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   25:     0x7930fafe7dfa - <unknown>
[INFO] [stdout]   26:     0x7930fb07b3d4 - clone
[INFO] [stdout]   27:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     debug_log::tests::apply_config_fills_default_path_when_enabled_without_path
[INFO] [stdout]     debug_log::tests::apply_config_stores_relative_log_path_as_the_resolved_destination
[INFO] [stdout]     webui::tests::get_logging_reads_live_snapshot_without_waiting_for_mutation_lock
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 993 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.18s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin codex-warp`
[INFO] running `Command { std: "docker" "inspect" "1ab134d57af559f2b449983dc3c9975b22a8d00b63c25319ee02d8b1a2f77c07", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1ab134d57af559f2b449983dc3c9975b22a8d00b63c25319ee02d8b1a2f77c07", kill_on_drop: false }`
[INFO] [stdout] 1ab134d57af559f2b449983dc3c9975b22a8d00b63c25319ee02d8b1a2f77c07
