[INFO] fetching crate nils-codex-cli 1.21.9... [INFO] testing nils-codex-cli-1.21.9 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2 [INFO] extracting crate nils-codex-cli 1.21.9 into /workspace/builds/worker-5-tc1/source [INFO] started tweaking crates.io crate nils-codex-cli 1.21.9 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate nils-codex-cli 1.21.9 [INFO] tweaked toml for crates.io crate nils-codex-cli 1.21.9 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate nils-codex-cli 1.21.9 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 crates.io crate nils-codex-cli 1.21.9 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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded reqwest v0.13.4 [INFO] [stderr] Downloaded rustls-platform-verifier-android v0.1.1 [INFO] [stderr] Downloaded anyhow v1.0.103 [INFO] [stderr] Downloaded rustls-platform-verifier v0.7.0 [INFO] [stderr] Downloaded jni-sys-macros v0.4.1 [INFO] [stderr] Downloaded rustc-hash v2.1.2 [INFO] [stderr] Downloaded nils-provider-resume v1.21.9 [INFO] [stderr] Downloaded jni-sys v0.4.1 [INFO] [stderr] Downloaded nils-build-info v1.21.9 [INFO] [stderr] Downloaded nils-term v1.21.9 [INFO] [stderr] Downloaded nils-test-support v1.21.9 [INFO] [stderr] Downloaded defmt-macros v1.1.0 [INFO] [stderr] Downloaded diff v0.1.13 [INFO] [stderr] Downloaded is_executable v1.0.6 [INFO] [stderr] Downloaded console v0.16.4 [INFO] [stderr] Downloaded defmt v1.1.0 [INFO] [stderr] Downloaded jni-macros v0.22.4 [INFO] [stderr] Downloaded nils-common v1.21.9 [INFO] [stderr] Downloaded jiff-tzdb v0.1.6 [INFO] [stderr] Downloaded pretty_assertions v1.4.1 [INFO] [stderr] Downloaded indicatif v0.18.6 [INFO] [stderr] Downloaded clap_complete v4.6.7 [INFO] [stderr] Downloaded webpki-root-certs v1.0.7 [INFO] [stderr] Downloaded jiff-static v0.2.32 [INFO] [stderr] Downloaded regex v1.13.0 [INFO] [stderr] Downloaded aws-lc-rs v1.17.0 [INFO] [stderr] Downloaded jni v0.22.4 [INFO] [stderr] Downloaded simd_cesu8 v1.1.1 [INFO] [stderr] Downloaded jiff v0.2.32 [INFO] [stderr] Downloaded aws-lc-sys v0.41.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 391b43f20592958eba6cf265cf06d87ab2687345b44588b6584eeb54a5cb2b86 [INFO] running `Command { std: "docker" "start" "391b43f20592958eba6cf265cf06d87ab2687345b44588b6584eeb54a5cb2b86", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "391b43f20592958eba6cf265cf06d87ab2687345b44588b6584eeb54a5cb2b86", 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" "391b43f20592958eba6cf265cf06d87ab2687345b44588b6584eeb54a5cb2b86" "/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" "391b43f20592958eba6cf265cf06d87ab2687345b44588b6584eeb54a5cb2b86", 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" "391b43f20592958eba6cf265cf06d87ab2687345b44588b6584eeb54a5cb2b86" "/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.45 [INFO] [stderr] Compiling libc v0.2.186 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling shlex v2.0.1 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Compiling memchr v2.8.2 [INFO] [stderr] Compiling fs_extra v1.3.0 [INFO] [stderr] Compiling itoa v1.0.18 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling smallvec v1.15.2 [INFO] [stderr] Compiling writeable v0.6.3 [INFO] [stderr] Compiling aws-lc-rs v1.17.0 [INFO] [stderr] Compiling litemap v0.8.2 [INFO] [stderr] Compiling icu_normalizer_data v2.2.0 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling icu_properties_data v2.2.0 [INFO] [stderr] Compiling utf8_iter v1.0.4 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling rustls-pki-types v1.14.1 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling rustls v0.23.40 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling serde_json v1.0.150 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling http v1.4.2 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling portable-atomic v1.13.1 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling anyhow v1.0.103 [INFO] [stderr] Compiling regex-syntax v0.8.11 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling socket2 v0.6.4 [INFO] [stderr] Compiling mio v1.2.1 [INFO] [stderr] Compiling rustls-native-certs v0.8.4 [INFO] [stderr] Compiling cc v1.2.64 [INFO] [stderr] Compiling console v0.16.4 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling jiff v0.2.32 [INFO] [stderr] Compiling tokio v1.52.3 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling nils-build-info v1.21.9 [INFO] [stderr] Compiling unit-prefix v0.5.2 [INFO] [stderr] Compiling log v0.4.33 [INFO] [stderr] Compiling bitflags v2.13.0 [INFO] [stderr] Compiling indicatif v0.18.6 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling cmake v0.1.58 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling is_executable v1.0.6 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling aws-lc-sys v0.41.0 [INFO] [stderr] Compiling nils-term v1.21.9 [INFO] [stderr] Compiling chrono v0.4.45 [INFO] [stderr] Compiling synstructure v0.13.2 [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 serde_derive v1.0.228 [INFO] [stderr] Compiling clap_derive v4.6.1 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling regex v1.13.0 [INFO] [stderr] Compiling zerofrom v0.1.8 [INFO] [stderr] Compiling yoke v0.8.3 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling hyper v1.10.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling clap v4.6.1 [INFO] [stderr] Compiling clap_complete v4.6.7 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling hyper-util v0.1.20 [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 nils-common v1.21.9 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling idna_adapter v1.2.2 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling nils-provider-resume v1.21.9 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling tower-http v0.6.11 [INFO] [stderr] Compiling rustls-webpki v0.103.13 [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.4 [INFO] [stderr] Compiling nils-codex-cli v1.21.9 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 57.14s [INFO] running `Command { std: "docker" "inspect" "391b43f20592958eba6cf265cf06d87ab2687345b44588b6584eeb54a5cb2b86", 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" "391b43f20592958eba6cf265cf06d87ab2687345b44588b6584eeb54a5cb2b86" "/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 bitflags v2.13.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling fastrand v2.4.1 [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Compiling diff v0.1.13 [INFO] [stderr] Compiling tower-http v0.6.11 [INFO] [stderr] Compiling pretty_assertions v1.4.1 [INFO] [stderr] Compiling reqwest v0.13.4 [INFO] [stderr] Compiling nils-codex-cli v1.21.9 (/opt/rustwide/workdir) [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling nils-test-support v1.21.9 [INFO] [stderr] Finished `release` profile [optimized] target(s) in 10.08s [INFO] running `Command { std: "docker" "inspect" "391b43f20592958eba6cf265cf06d87ab2687345b44588b6584eeb54a5cb2b86", 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" "391b43f20592958eba6cf265cf06d87ab2687345b44588b6584eeb54a5cb2b86" "/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.11s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/release/deps/codex_cli-242fd22e99cde18c) [INFO] [stdout] [INFO] [stdout] running 93 tests [INFO] [stdout] test agent::commit::tests::semantic_commit_prompt_rejects_invalid_mode ... ok [INFO] [stdout] test agent::commit::tests::suggested_scope_ignores_root_file_when_single_directory_exists ... ok [INFO] [stdout] test agent::commit::tests::suggested_scope_returns_empty_for_multiple_directories ... ok [INFO] [stdout] test agent::commit::tests::suggested_scope_prefers_single_top_level_directory ... ok [INFO] [stdout] test agent::resume::tests::resolve_error_exit_codes_match_contract ... ok [INFO] [stdout] test agent::resume::tests::resolve_error_messages_are_actionable ... ok [INFO] [stdout] test agent::resume::tests::resume_argv_is_positional_and_cd_scoped ... ok [INFO] [stdout] test agent::resume::tests::resume_argv_keeps_session_id_as_a_single_argument ... ok [INFO] [stdout] test auth::login::tests::resolve_method_defaults_to_chatgpt_browser ... ok [INFO] [stdout] test auth::login::tests::resolve_method_rejects_conflicting_flags ... ok [INFO] [stdout] test auth::login::tests::resolve_method_selects_device_code_and_api_key ... ok [INFO] [stdout] test auth::refresh::tests::auth_refresh_env_timeout_parses_value ... ok [INFO] [stdout] test auth::refresh::tests::auth_refresh_env_timeout_uses_default_when_missing_or_invalid ... ok [INFO] [stdout] test auth::refresh::tests::auth_refresh_error_summary ... ok [INFO] [stdout] test auth::refresh::tests::auth_refresh_file_name_defaults_when_missing ... ok [INFO] [stdout] test auth::refresh::tests::auth_refresh_file_name_defaults_when_non_utf8 ... ok [INFO] [stdout] test auth::refresh::tests::auth_refresh_file_name_returns_basename ... ok [INFO] [stdout] test auth::refresh::tests::auth_refresh_merge_tokens ... ok [INFO] [stdout] test auth::refresh::tests::auth_refresh_refresh_token_from_json_falls_back_after_nested_placeholder ... ok [INFO] [stdout] test auth::refresh::tests::auth_refresh_refresh_token_from_json_falls_back_to_top_level ... ok [INFO] [stdout] test auth::refresh::tests::auth_refresh_refresh_token_from_json_ignores_access_only_placeholder ... ok [INFO] [stdout] test auth::refresh::tests::auth_refresh_refresh_token_from_json_none_when_missing ... ok [INFO] [stdout] test auth::refresh::tests::auth_refresh_refresh_token_from_json_prefers_nested ... ok [INFO] [stdout] test auth::refresh::tests::auth_refresh_resolve_target_defaults_when_no_args ... ok [INFO] [stdout] test auth::refresh::tests::auth_refresh_resolve_target_joins_secret_name ... ok [INFO] [stdout] test auth::refresh::tests::auth_refresh_resolve_target_rejects_invalid_secret_names ... ok [INFO] [stdout] test auth::remote::tests::remote_sanitize_access_only_keeps_only_access_fields ... ok [INFO] [stdout] test auth::remote::tests::remote_validates_ssh_host_and_secret_name ... ok [INFO] [stdout] test auth::remove::tests::invalid_target_rejects_paths_and_traversal ... ok [INFO] [stdout] test auth::save::tests::invalid_target_rejects_paths_and_traversal ... ok [INFO] [stdout] test auth::status::tests::enum_string_contracts_are_stable ... ok [INFO] [stdout] test auth::status::tests::has_non_empty_string_rejects_missing_null_and_blank_values ... ok [INFO] [stdout] test auth::status::tests::has_real_refresh_token_rejects_access_only_placeholder ... ok [INFO] [stdout] test auth::tests::normalize_secret_file_name_appends_json_suffix_only_once ... ok [INFO] [stdout] test auth::tests::secret_target_validation_rejects_paths_and_traversal ... ok [INFO] [stdout] test prompt_segment::lock::tests::is_stale_modified_handles_future_modified_time ... ok [INFO] [stdout] test prompt_segment::lock::tests::is_stale_modified_returns_false_when_age_below_threshold ... ok [INFO] [stdout] test prompt_segment::lock::tests::is_stale_modified_returns_true_when_age_exceeds_threshold ... ok [INFO] [stdout] test prompt_segment::lock::tests::is_stale_modified_returns_true_when_modified_fails ... ok [INFO] [stdout] test prompt_segment::lock::tests::is_stale_returns_true_when_metadata_fails ... ok [INFO] [stdout] test prompt_segment::lock::tests::lock_dir_for_cache_file_returns_none_when_stem_missing ... ok [INFO] [stdout] test prompt_segment::lock::tests::is_stale_returns_true_when_stale_seconds_zero ... ok [INFO] [stdout] test prompt_segment::lock::tests::lock_dir_for_cache_file_appends_refresh_lock_suffix ... ok [INFO] [stdout] test prompt_segment::lock::tests::refresh_lock_acquire_returns_none_on_create_dir_error ... ok [INFO] [stdout] test prompt_segment::lock::tests::refresh_lock_acquire_returns_none_when_lock_exists_and_not_stale ... ok [INFO] [stdout] test prompt_segment::lock::tests::refresh_lock_acquire_creates_and_cleans_up ... ok [INFO] [stdout] test prompt_segment::lock::tests::refresh_lock_acquire_reclaims_lock_when_stale_seconds_zero ... ok [INFO] [stdout] test agent::commit::tests::command_exists_checks_executable_bit ... ok [INFO] [stdout] test auth::remote::tests::remote_infers_secret_name_for_secret_file_target ... ok [INFO] [stdout] test auth::remote::tests::remote_sync_matching_active_from_secret_updates_same_identity ... ok [INFO] [stdout] test auth::remote::tests::remote_sync_matching_active_from_secret_skips_different_identity ... ok [INFO] [stdout] test auth::remove::tests::resolve_secret_dir_uses_codex_secret_dir_only ... ok [INFO] [stdout] test auth::save::tests::resolve_secret_dir_uses_codex_secret_dir_only ... ok [INFO] [stdout] test auth::use_secret::tests::secret_timestamp_path_uses_cache_dir_and_default_file_name ... ok [INFO] [stdout] test prompt_segment::render::tests::should_color_falls_back_to_prompt_markers_when_not_overridden ... ok [INFO] [stdout] test prompt_segment::render::tests::should_color_explicit_truthy_and_falsey_values_are_stable ... ok [INFO] [stdout] test prompt_segment::render::tests::should_color_no_color_has_highest_priority ... ok [INFO] [stdout] test rate_limits::cache::tests::cache_file_for_auth_target_reuses_matching_secret_identity ... ok [INFO] [stdout] test rate_limits::cache::tests::cache_file_for_non_secret_target_falls_back_to_hashed_key ... ok [INFO] [stdout] test rate_limits::cache::tests::cache_file_for_secret_target_uses_sanitized_secret_name ... ok [INFO] [stdout] test rate_limits::cache::tests::clear_prompt_segment_cache_rejects_relative_cache_root ... ok [INFO] [stdout] test rate_limits::cache::tests::clear_prompt_segment_cache_rejects_root_cache_path ... ok [INFO] [stdout] test rate_limits::tests::rate_limits_helper_current_secret_basename_tracks_auth_switch ... ok [INFO] [stdout] test rate_limits::tests::rate_limits_helper_parsers_and_name_helpers_cover_fallbacks ... ok [INFO] [stdout] test rate_limits::cache::tests::read_cache_entry_for_cached_mode_allows_stale_when_enabled ... ok [INFO] [stdout] test rate_limits::cache::tests::read_cache_entry_for_cached_mode_honors_ttl_env ... ok [INFO] [stdout] test rate_limits::cache::tests::read_cache_entry_for_cached_mode_rejects_expired_cache_by_default ... ok [INFO] [stdout] test rate_limits::cache::tests::read_cache_entry_reports_missing_non_weekly_data ... ok [INFO] [stdout] test rate_limits::tests::redact_sensitive_json_removes_tokens_recursively ... ok [INFO] [stdout] test rate_limits::cache::tests::read_cache_entry_reports_missing_weekly_data ... ok [INFO] [stdout] test rate_limits::writeback::tests::write_weekly_clears_non_weekly_fields_when_non_weekly_epoch_is_non_positive ... ok [INFO] [stdout] test rate_limits::writeback::tests::write_weekly_fails_when_existing_json_root_is_not_object ... ok [INFO] [stdout] test rate_limits::writeback::tests::write_weekly_fails_when_target_file_is_missing ... ok [INFO] [stdout] test rate_limits::writeback::tests::write_weekly_noops_when_usage_payload_is_unparseable ... ok [INFO] [stdout] test rate_limits::cache::tests::write_cache_omits_optional_non_weekly_reset_epoch_when_absent ... ok [INFO] [stdout] test rate_limits::writeback::tests::write_weekly_preserves_existing_codex_rate_limits_fields ... ok [INFO] [stdout] test rate_limits::writeback::tests::write_weekly_replaces_non_object_codex_rate_limits_value ... ok [INFO] [stdout] test rate_limits::writeback::tests::write_weekly_recovers_from_malformed_existing_json ... ok [INFO] [stdout] test rate_limits::writeback::tests::write_weekly_skips_write_when_weekly_epoch_is_non_positive ... ok [INFO] [stdout] test rate_limits::cache::tests::write_then_read_cache_entry_preserves_optional_non_weekly_reset_epoch ... ok [INFO] [stdout] test rate_limits::tests::collect_secret_files_for_async_text_allows_empty_secret_dir ... ok [INFO] [stdout] test rate_limits::tests::collect_secret_files_reports_missing_secret_dir ... ok [INFO] [stdout] test rate_limits::writeback::tests::write_weekly_uses_primary_window_when_primary_is_weekly ... ok [INFO] [stdout] test rate_limits::tests::collect_secret_files_returns_sorted_json_files_only ... ok [INFO] [stdout] test rate_limits::tests::rate_limits_helper_async_fetch_one_line_uses_cache_fallback ... ok [INFO] [stdout] test rate_limits::tests::rate_limits_helper_collect_json_from_cache_covers_hit_and_miss ... ok [INFO] [stdout] test rate_limits::cache::tests::clear_prompt_segment_cache_removes_only_prompt_segment_cache_dir ... ok [INFO] [stdout] test rate_limits::tests::rate_limits_helper_env_timeout_supports_default_and_parse ... ok [INFO] [stdout] test rate_limits::tests::rate_limits_helper_fetch_one_line_cached_covers_success_and_error ... ok [INFO] [stdout] test rate_limits::tests::rate_limits_helper_resolve_target_and_is_auth_file ... ok [INFO] [stdout] test rate_limits::tests::rate_limits_helper_resolve_target_without_auth_returns_default_active_path ... ok [INFO] [stdout] test rate_limits::tests::rate_limits_helper_single_one_line_cached_mode_handles_hit_and_miss ... ok [INFO] [stdout] test rate_limits::tests::rate_limits_helper_sync_auth_silent_updates_matching_secret_and_timestamps ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 93 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/release/deps/codex_cli-c3f9645e36374425) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/release/deps/integration-66bd7dd1145a3c00) [INFO] [stdout] [INFO] [stdout] running 288 tests [INFO] [stdout] test agent_exec::exec_dangerous_missing_prompt_exits_1 ... ok [INFO] [stdout] test agent_resume::resume_control_char_id_is_usage_error ... ok [INFO] [stdout] test agent_resume::resume_cd_override_to_missing_directory_is_runtime_error ... ok [INFO] [stdout] test agent_resume::resume_truncated_scan_returns_runtime_error ... ok [INFO] [stdout] test agent_resume::resume_cd_override_bypasses_resolution ... ok [INFO] [stdout] test agent_resume::resume_launches_codex_with_recorded_cwd_from_unrelated_dir ... ok [INFO] [stdout] test agent_templates::agent_advice_blank_question_exits_1_with_missing_question_message ... ok [INFO] [stdout] test agent_resume::resume_unknown_id_returns_data_error ... ok [INFO] [stdout] test agent_templates::agent_knowledge_missing_template_prints_error_prefix ... ok [INFO] [stdout] test auth_auto_refresh::auth_auto_refresh_backfills_timestamp ... ok [INFO] [stdout] test auth_auto_refresh::auth_auto_refresh_counts_non_file_secret_entry_as_failed ... ok [INFO] [stdout] test auth_auto_refresh::auth_auto_refresh_disabled_by_default_does_not_refresh_due_targets ... ok [INFO] [stdout] test auth_auto_refresh::auth_auto_refresh_invalid_min_days ... ok [INFO] [stdout] test auth_auto_refresh::auth_auto_refresh_normalizes_fractional_last_refresh ... ok [INFO] [stdout] test agent_templates::agent_advice_substitutes_arguments ... ok [INFO] [stdout] test agent_templates::agent_advice_ephemeral_flag_forwards_to_codex_exec ... ok [INFO] [stdout] test auth_auto_refresh::auth_auto_refresh_unconfigured_exits_zero ... ok [INFO] [stdout] test auth_auto_refresh::auth_auto_refresh_warns_on_future_timestamp_and_skips ... ok [INFO] [stdout] test auth_current_sync::auth_current_exact_match ... ok [INFO] [stdout] test auth_current_sync::auth_current_identity_differs ... ok [INFO] [stdout] test auth_current_sync::auth_current_missing_auth_file ... ok [INFO] [stdout] test auth_current_sync::auth_current_no_match ... ok [INFO] [stdout] test auth_current_sync::auth_sync_updates_matching ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_auto_refresh_disabled_returns_zeroed_result ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_auto_refresh_invalid_min_days_is_structured ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_auto_refresh_unconfigured_returns_zeroed_result ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_current_defaults_to_home_secret_dir_when_env_unset ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_current_missing_auth_file_is_structured ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_current_missing_default_secret_dir_is_structured ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_current_no_match_is_structured ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_current_success_includes_stable_fields ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_login_exec_failure_is_structured ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_login_success_includes_stable_fields ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_refresh_bad_json_is_structured ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_refresh_invalid_name_is_structured ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_refresh_missing_target_is_structured ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_refresh_missing_token_is_structured ... ok [INFO] [stdout] test agent_commit::agent_commit_fallback_creates_commit ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_remove_requires_confirmation ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_refresh_remote_sync_success_is_structured ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_remove_success_includes_stable_fields ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_save_overwrite_requires_confirmation ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_save_success_includes_stable_fields ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_status_api_key_is_authenticated_but_not_prompt_segment_ready ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_status_missing_auth_file_reports_unauthenticated_state ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_status_oauth_success_includes_readiness_without_secrets ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_status_refresh_token_is_auth_but_not_prompt_segment_ready ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_sync_missing_auth_reports_skipped ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_sync_success_reports_updated_files ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_use_ambiguous_returns_structured_error ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_use_invalid_name_is_structured ... ok [INFO] [stdout] test auth_json_contract::auth_json_contract_use_not_found_is_structured ... ok [INFO] [stdout] test auth_json_contract_more::auth_json_contract_current_not_configured_and_secret_dir_read_failed_are_structured ... ok [INFO] [stdout] test agent_commit::agent_commit_semantic_mode_executes_codex_with_template_and_push_note ... ok [INFO] [stdout] test agent_exec::require_allow_dangerous_treats_empty_as_false ... ok [INFO] [stdout] test agent_exec::exec_dangerous_returns_1_when_codex_missing ... ok [INFO] [stdout] test agent_prompt::agent_prompt_blank_line_exits_1_with_missing_prompt_message ... ok [INFO] [stdout] test agent_exec::require_allow_dangerous_warns_on_invalid_value ... ok [INFO] [stdout] test agent_exec::require_allow_dangerous_without_caller_uses_codex_prefix ... ok [INFO] [stdout] test agent_prompt::agent_prompt_empty_stdin_exits_1_without_exec ... ok [INFO] [stdout] test auth_json_contract_more::auth_json_contract_save_invalid_name_is_structured ... ok [INFO] [stdout] test auth_login::auth_login_json_missing_codex_is_structured_error ... ok [INFO] [stdout] test agent_prompt::agent_prompt_execs_codex_with_ephemeral_arg_when_requested ... ok [INFO] [stdout] test auth_json_contract_more::auth_json_contract_remove_invalid_name_and_missing_paths_are_structured ... ok [INFO] [stdout] test auth_json_contract_more::auth_json_contract_sync_handles_unconfigured_and_missing_identity ... ok [INFO] [stdout] test auth_login::auth_login_default_uses_chatgpt_browser_flow ... ok [INFO] [stdout] test auth_login::auth_login_rejects_conflicting_flags ... ok [INFO] [stdout] test auth_login::auth_login_json_non_zero_status_is_structured_error ... ok [INFO] [stdout] test auth_login::auth_login_json_success_is_structured ... ok [INFO] [stdout] test auth_refresh::auth_refresh_invalid_name ... ok [INFO] [stdout] test auth_json_contract_more::auth_json_contract_save_missing_paths_are_structured ... ok [INFO] [stdout] test agent_prompt::agent_prompt_reads_stdin_when_no_args ... ok [INFO] [stdout] test auth_refresh::auth_refresh_missing_secret_file ... ok [INFO] [stdout] test auth_refresh::auth_refresh_missing_token ... ok [INFO] [stdout] test auth_login::auth_login_device_code_and_api_key_map_to_expected_args ... ok [INFO] [stdout] test auth_remote::auth_remote_export_access_only_strips_refresh_token ... ok [INFO] [stdout] test auth_remote::auth_remote_pull_json_reports_missing_name_flag ... ok [INFO] [stdout] test agent_prompt::agent_prompt_execs_codex_with_expected_args ... ok [INFO] [stdout] test auth_remote::auth_remote_pull_json_reports_missing_ssh_flag ... ok [INFO] [stdout] test auth_refresh::auth_refresh_delegates_to_configured_remote_without_local_refresh_token ... ok [INFO] [stdout] test auth_refresh::auth_refresh_remote_does_not_overwrite_matching_full_secret ... ok [INFO] [stdout] test auth_remote::auth_remote_pull_json_reports_active_auth_write_failure ... ok [INFO] [stdout] test auth_refresh::auth_refresh_remote_uses_active_matching_secret_name_over_default ... ok [INFO] [stdout] test agent_prompt::agent_prompt_refreshes_remote_auth_before_codex_exec ... ok [INFO] [stdout] test auth_remote::auth_remote_pull_rejects_secret_name_shell_metachar ... ok [INFO] [stdout] test auth_remote::auth_remote_pull_access_only_writes_active_with_placeholder_refresh_token ... ok [INFO] [stdout] test agent_prompt::agent_prompt_requires_dangerous_mode ... ok [INFO] [stdout] test auth_remote::auth_remote_pull_rejects_ssh_option_injection ... ok [INFO] [stdout] test auth_remote::auth_remote_pull_json_reports_timestamp_write_failure_after_active_auth_write ... ok [INFO] [stdout] test auth_remove::auth_remove_errors_when_secret_dir_missing ... ok [INFO] [stdout] test auth_remove::auth_remove_appends_json_suffix_when_missing ... ok [INFO] [stdout] test auth_remote::auth_remote_pull_persists_fallback_last_refresh_when_remote_omits_it ... ok [INFO] [stdout] test auth_remove::auth_remove_errors_when_target_missing ... ok [INFO] [stdout] test auth_remote::auth_remote_pull_refresh_flag_requests_remote_refresh_before_export ... ok [INFO] [stdout] test auth_remove::auth_remove_json_requires_confirmation ... ok [INFO] [stdout] test auth_remove::auth_remove_rejects_path_traversal ... ok [INFO] [stdout] test auth_remove::auth_remove_requires_file_name ... ok [INFO] [stdout] test auth_remove::auth_remove_keeps_env_only_contract_even_if_home_secret_dir_exists ... ok [INFO] [stdout] test auth_remote::auth_remote_pull_rejects_payload_without_oauth_access_token ... ok [INFO] [stdout] test auth_remove::auth_remove_requires_yes_in_non_tty_mode ... ok [INFO] [stdout] test auth_refresh::auth_refresh_remote_refresh_falls_back_to_active_export_when_remote_refresh_fails ... ok [INFO] [stdout] test auth_remove::auth_remove_yes_does_not_create_missing_cache_dir ... ok [INFO] [stdout] test auth_remove::auth_remove_yes_deletes_file_and_timestamp ... ok [INFO] [stdout] test auth_save::auth_save_appends_json_suffix_when_missing ... ok [INFO] [stdout] test auth_save::auth_save_errors_when_auth_file_missing ... ok [INFO] [stdout] test auth_save::auth_save_errors_when_secret_dir_missing ... ok [INFO] [stdout] test auth_save::auth_save_json_overwrite_requires_confirmation ... ok [INFO] [stdout] test auth_save::auth_save_keeps_env_only_contract_even_if_home_secret_dir_exists ... ok [INFO] [stdout] test auth_save::auth_save_requires_file_name ... ok [INFO] [stdout] test auth_save::auth_save_rejects_path_traversal ... ok [INFO] [stdout] test auth_save::auth_save_overwrite_prompt_default_no_in_non_tty_mode ... ok [INFO] [stdout] test auth_save::auth_save_overwrite_yes_bypasses_prompt ... ok [INFO] [stdout] test auth_use::auth_use_invalid_path ... ok [INFO] [stdout] test auth_save::auth_save_writes_target_file ... ok [INFO] [stdout] test auth_use::auth_use_extra_args ... ok [INFO] [stdout] test auth_use::auth_use_missing_arg ... ok [INFO] [stdout] test auth_remote::auth_remote_pull_refresh_falls_back_to_active_export_when_remote_refresh_fails ... ok [INFO] [stdout] test auth_use::auth_use_name_without_json_suffix_resolves_json_secret ... ok [INFO] [stdout] test auth_use::auth_use_rejects_backslash_path ... ok [INFO] [stdout] test auth_use::auth_use_email_resolution ... ok [INFO] [stdout] test auth_auto_refresh::auth_auto_refresh_remote_mode_recreates_missing_active_auth_despite_recent_timestamp ... ok [INFO] [stdout] test auth_use::auth_use_ambiguous_email ... ok [INFO] [stdout] test config::config_set_dangerous_prints_export_for_true ... ok [INFO] [stdout] test completion_contract::completion_contract_format_values_include_text_and_json ... ok [INFO] [stdout] test completion_contract::completion_contract_includes_top_level_command_families ... ok [INFO] [stdout] test completion_contract::completion_contract_is_context_aware_across_command_families ... ok [INFO] [stdout] test config::config_set_dangerous_rejects_invalid_values ... ok [INFO] [stdout] test config::config_set_ephemeral_prints_export_for_true ... ok [INFO] [stdout] test completion_smoke::completion_zsh_omits_hidden_auth_remote_export_command ... ok [INFO] [stdout] test config::config_set_model_escapes_single_quotes ... ok [INFO] [stdout] test config::config_set_ephemeral_rejects_invalid_values ... ok [INFO] [stdout] test config::config_set_model_prints_export ... ok [INFO] [stdout] test config::config_set_model_quotes_empty_value ... ok [INFO] [stdout] test completion_smoke::completion_bash_candidates_remain_context_aware ... ok [INFO] [stdout] test config::config_set_reasoning_prints_export ... ok [INFO] [stdout] test config::config_set_remote_name_prints_export ... ok [INFO] [stdout] test config::config_set_remote_refresh_prints_export_for_false ... ok [INFO] [stdout] test fs::fs_sha256_file_matches_known_hash ... ok [INFO] [stdout] test config::config_show_prints_effective_values ... ok [INFO] [stdout] test config::config_show_prints_blank_paths_when_unresolvable ... ok [INFO] [stdout] test fs::fs_write_atomic_creates_parent_and_writes_contents ... ok [INFO] [stdout] test json::json_i64_at_parses_numeric_string ... ok [INFO] [stdout] test fs::fs_write_timestamp_removes_file_when_value_missing_or_empty ... ok [INFO] [stdout] test config::config_set_unknown_key_exits_64 ... ok [INFO] [stdout] test fs::fs_write_timestamp_trims_newlines_and_writes_value ... ok [INFO] [stdout] test jwt::jwt_decode_payload ... ok [INFO] [stdout] test json::json_i64_at_rejects_non_numeric_types ... ok [INFO] [stdout] test jwt::jwt_decode_payload_rejects_empty_payload_segment ... ok [INFO] [stdout] test exit_codes::help_flag_exits_success ... ok [INFO] [stdout] test jwt::jwt_identity_key_from_auth_file ... ok [INFO] [stdout] test config::config_set_remote_ssh_prints_export ... ok [INFO] [stdout] test diag_json_contract::diag_json_contract_single_failure_envelope_is_structured ... ok [INFO] [stdout] test exit_codes::unknown_subcommand_exits_usage ... ok [INFO] [stdout] test exit_codes::invalid_flag_exits_usage ... ok [INFO] [stdout] test help_snapshot::help_snapshot_root_help ... ok [INFO] [stdout] test main_entrypoint::main_completion_rejects_unknown_shell_with_usage_error ... ok [INFO] [stdout] test main_entrypoint::main_help_excludes_provider_neutral_groups ... ok [INFO] [stdout] test main_entrypoint::main_help_includes_completion_export_entrypoint ... ok [INFO] [stdout] test auth_auto_refresh::auth_auto_refresh_remote_mode_refreshes_active_auth_only ... ok [INFO] [stdout] test main_entrypoint::main_help_advertises_format_and_hides_json_alias_for_diag_and_auth ... ok [INFO] [stdout] test main_entrypoint::main_agent_and_config_without_subcommand_print_help ... ok [INFO] [stdout] test main_entrypoint::main_no_args_prints_help_and_exits_zero ... ok [INFO] [stdout] test main_entrypoint::main_help_subcommand_exits_zero ... ok [INFO] [stdout] test main_entrypoint::main_agent_prompt_is_gated_and_config_show_exits_zero ... ok [INFO] [stdout] test completion_smoke::completion_export_is_stable_across_repeated_runs ... ok [INFO] [stdout] test paths::paths_resolve_auth_file_prefers_env ... ok [INFO] [stdout] test paths::paths_resolve_secret_cache_dir_variants ... ok [INFO] [stdout] test main_entrypoint::main_completion_exports_bash_and_zsh_scripts ... ok [INFO] [stdout] test main_entrypoint::main_unknown_command_exits_64 ... ok [INFO] [stdout] test paths::paths_resolve_script_dir_ignores_empty_env_override ... ok [INFO] [stdout] test parity_oracle::parity_oracle_format_flag_visibility_matches_gemini_for_auth_and_diag_help ... FAILED [INFO] [stdout] test paths::paths_resolve_secret_dir_from_feature_dir ... ok [INFO] [stdout] test parity_oracle::parity_oracle_auth_json_schema_ids_are_provider_specific ... FAILED [INFO] [stdout] test parity_oracle::parity_oracle_topology_matches_gemini ... FAILED [INFO] [stdout] test prompt_segment_cached::prompt_segment_disabled_prints_nothing ... ok [INFO] [stdout] test paths::paths_resolve_zdotdir_variants ... ok [INFO] [stdout] test main_entrypoint::main_help_includes_ephemeral_flag_for_agent_commands ... ok [INFO] [stdout] test prompt_segment_cached::prompt_segment_invalid_auth_suppresses_stale_cache_output ... ok [INFO] [stdout] test prompt_segment_cached::prompt_segment_invalid_ttl_exits_2_and_prints_usage ... ok [INFO] [stdout] test prompt_segment_cached::prompt_segment_env_can_disable_5h_without_flag ... ok [INFO] [stdout] test prompt_segment_cached::prompt_segment_name_source_email_uses_email_not_secret_name ... ok [INFO] [stdout] test prompt_segment_cached::prompt_segment_status_json_reports_missing_auth_without_failure ... ok [INFO] [stdout] test prompt_segment_cached::prompt_segment_cached_output_formats_and_supports_no_5h ... ok [INFO] [stdout] test prompt_segment_cached::prompt_segment_status_json_reports_current_render_readiness ... ok [INFO] [stdout] test prompt_segment_cached::prompt_segment_name_source_email_can_show_full_email ... ok [INFO] [stdout] test prompt_segment_cached::prompt_segment_stale_cache_appends_suffix ... ok [INFO] [stdout] test prompt_segment_cached::prompt_segment_default_time_uses_local_format_and_show_timezone_flag ... ok [INFO] [stdout] test prompt_segment_cached::prompt_segment_refresh_only_auth_is_not_render_ready ... ok [INFO] [stdout] test main_entrypoint::main_removed_provider_neutral_groups_use_clap_parse_errors ... ok [INFO] [stdout] test prompt_segment_cached::prompt_segment_zsh_escape_mode_doubles_prompt_percent_tokens ... ok [INFO] [stdout] test prompt_segment_cached::prompt_segment_is_enabled_exit_codes ... ok [INFO] [stdout] test prompts::prompts_read_template_errors_when_template_missing ... ok [INFO] [stdout] test prompts::prompts_read_template_errors_when_template_unreadable ... FAILED [INFO] [stdout] test prompts::prompts_resolve_uses_feature_dir_fallback_when_zdotdir_prompts_missing ... ok [INFO] [stdout] test rate_limits_all::rate_limits_all_json_empty_secret_dir_is_structured ... ok [INFO] [stdout] test prompts::prompts_resolve_returns_none_when_no_prompts_dirs_exist ... ok [INFO] [stdout] test prompts::prompts_read_template_errors_when_prompts_dir_missing ... ok [INFO] [stdout] test rate_limits_all::rate_limits_all_json_missing_secret_dir_is_structured ... ok [INFO] [stdout] test rate_limits_all::rate_limits_all_missing_secret_dir ... ok [INFO] [stdout] test rate_limits_ansi::rate_limits_ansi_format_name_cell ... ok [INFO] [stdout] test rate_limits_ansi::rate_limits_ansi_format_percent_cell_and_token ... ok [INFO] [stdout] test rate_limits_ansi::rate_limits_ansi_should_color_respects_no_color ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_clear_cache_failure_reports_error ... ok [INFO] [stdout] test rate_limits_all::rate_limits_all_rejects_positional_secret_arg ... ok [INFO] [stdout] test dispatch::dispatch_removed_redirect_commands_use_clap_parse_errors ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_json_cached_clear_cache_conflict_is_structured ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_jobs_zero_defaults ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_json_clear_cache_failure_is_structured ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_json_missing_secret_dir_is_structured ... ok [INFO] [stdout] test prompt_segment_refresh::prompt_segment_refresh_recovers_from_stale_lock_dir ... ok [INFO] [stdout] test prompt_segment_refresh::prompt_segment_stale_cache_triggers_background_refresh ... ok [INFO] [stdout] test rate_limits_all::rate_limits_all_json_falls_back_to_official_codex_auth_file ... ok [INFO] [stdout] test auth_json_contract_more::auth_json_contract_refresh_request_failure_is_structured ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_json_one_line_conflict_is_structured ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_json_positional_arg_is_structured ... ok [INFO] [stdout] test prompt_segment_refresh::prompt_segment_refresh_updates_cache_and_prints ... ok [INFO] [stdout] test diag_json_contract::diag_json_contract_all_partial_failure_keeps_results_array ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_missing_secret_dir ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_one_line_conflict ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_json_null_payload_serves_stale_cache ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_rejects_positional_secret_arg ... ok [INFO] [stdout] test completion_flags_contract::completion_flags_contract_leaf_help_matches_bash_and_zsh_candidates ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_rejects_cached_clear_cache_combo ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_json_null_payload_is_benign ... ok [INFO] [stdout] test rate_limits_client::rate_limits_client_missing_access_token ... ok [INFO] [stdout] test rate_limits_async::rate_limits_watch_requires_async ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_json_falls_back_to_cache_for_missing_access_token ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_json_partial_failure_keeps_results_array ... ok [INFO] [stdout] test rate_limits_client_more::rate_limits_client_read_tokens_supports_root_account_id ... ok [INFO] [stdout] test rate_limits_all::rate_limits_all_json_outputs_results ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_text_null_payload_without_cache_shows_na ... ok [INFO] [stdout] test prompt_segment_refresh::prompt_segment_refresh_401_suppresses_auth_refresh_output ... ok [INFO] [stdout] test rate_limits_client_more::rate_limits_client_fetch_usage_errors_include_body_preview ... ok [INFO] [stdout] test rate_limits_client_more::rate_limits_client_fetch_usage_invalid_json_is_error ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_json_outputs_results ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_watch_renders_last_update_timestamp ... ok [INFO] [stdout] test prompt_segment_refresh::prompt_segment_stale_cache_401_refreshes_auth_in_background ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_text_null_payload_serves_stale_cache ... ok [INFO] [stdout] test rate_limits_client_more::rate_limits_client_fetch_usage_errors_without_body_when_empty ... ok [INFO] [stdout] test rate_limits_client_more::rate_limits_client_fetch_usage_refreshes_on_401_when_enabled ... ok [INFO] [stdout] test rate_limits_network::rate_limits_async_falls_back_to_cache_in_debug_mode ... ok [INFO] [stdout] test rate_limits_render::rate_limits_render_formats_time_and_remaining ... ok [INFO] [stdout] test rate_limits_network::rate_limits_single_401_does_not_refresh_auth_by_default ... ok [INFO] [stdout] test rate_limits_render::rate_limits_render_parse_usage_rejects_missing_fields ... ok [INFO] [stdout] test rate_limits_render::rate_limits_render_formats_time_with_local_timezone_offset ... ok [INFO] [stdout] test rate_limits_network::rate_limits_all_mode_syncs_matching_secret_before_fetch ... ok [INFO] [stdout] test rate_limits_render::rate_limits_render_parses_usage_and_formats_windows ... ok [INFO] [stdout] test rate_limits_single::rate_limits_single_cached_missing_cache ... ok [INFO] [stdout] test rate_limits_single::rate_limits_single_cached_clear_cache_conflict ... ok [INFO] [stdout] test rate_limits_network::rate_limits_single_json_outputs_body ... ok [INFO] [stdout] test rate_limits_single::rate_limits_single_cached_stale_cache_is_rejected ... ok [INFO] [stdout] test rate_limits_network::rate_limits_clear_cache_removes_old_prompt_segment_cache_dir ... ok [INFO] [stdout] test rate_limits_network::rate_limits_single_401_refreshes_auth_when_enabled ... ok [INFO] [stdout] test rate_limits_single::rate_limits_single_cached_json_conflict ... ok [INFO] [stdout] test rate_limits_single::rate_limits_single_cached_success_reads_cache ... ok [INFO] [stdout] test rate_limits_single::rate_limits_single_json_missing_access_token_is_structured ... ok [INFO] [stdout] test rate_limits_network::rate_limits_default_all_env_enables_all_mode_without_flag ... ok [INFO] [stdout] test rate_limits_single::rate_limits_single_json_one_line_conflict ... ok [INFO] [stdout] test rate_limits_network::rate_limits_all_mode_renders_table ... ok [INFO] [stdout] test rate_limits_network::rate_limits_single_default_output_from_network ... ok [INFO] [stdout] test runtime_auth_contract::runtime_auth_contract_identity_and_email_are_extracted_from_jwt_payload ... ok [INFO] [stdout] test runtime_auth_contract::runtime_auth_contract_identity_precedence_and_account_fallback_are_stable ... ok [INFO] [stdout] test runtime_auth_contract::runtime_auth_contract_invalid_auth_file_is_deterministic_and_non_secret_leaking ... ok [INFO] [stdout] test runtime_auth_contract::runtime_auth_contract_account_id_falls_back_to_sub_claim ... ok [INFO] [stdout] test runtime_error_contract::runtime_error_contract_preserves_category_code_and_retryable ... ok [INFO] [stdout] test runtime_error_contract::runtime_error_contract_provider_category_hints_are_stable ... ok [INFO] [stdout] test runtime_auth_contract::runtime_auth_contract_top_level_tokens_are_supported_for_identity_and_email ... ok [INFO] [stdout] test runtime_error_contract::runtime_error_contract_exit_code_hints_are_stable ... ok [INFO] [stdout] test rate_limits_single::rate_limits_single_text_missing_access_token_reports_stderr ... ok [INFO] [stdout] test runtime_exec_contract::runtime_exec_contract_disabled_policy_reports_validation_message ... ok [INFO] [stdout] test rate_limits_single::rate_limits_single_json_target_not_found_is_structured ... ok [INFO] [stdout] test runtime_exec_contract::runtime_exec_contract_missing_prompt_is_rejected ... ok [INFO] [stdout] test rate_limits_network::rate_limits_async_json_jobs_zero_defaults_to_concurrent_workers ... ok [INFO] [stdout] test rate_limits_network::rate_limits_single_one_line_writes_cache_and_metadata ... ok [INFO] [stdout] test runtime_exec_contract::runtime_exec_contract_env_ephemeral_adds_exec_flag ... ok [INFO] [stdout] test runtime_paths_config_contract::runtime_paths_config_contract_resolve_feature_dir_and_zdotdir_fallbacks ... ok [INFO] [stdout] test runtime_exec_contract::runtime_exec_contract_success_path_uses_expected_command_shape ... ok [INFO] [stdout] test rate_limits_single::rate_limits_single_json_invalid_usage_payload_is_structured ... ok [INFO] [stdout] test runtime_exec_contract::runtime_exec_contract_missing_binary_fails_without_panicking ... ok [INFO] [stdout] test runtime_paths_config_contract::runtime_paths_config_contract_resolve_secret_and_cache_dirs_with_existing_precedence ... ok [INFO] [stdout] test runtime_paths_config_contract::runtime_paths_config_contract_snapshot_keeps_default_and_env_overrides ... ok [INFO] [stdout] test rate_limits_single::rate_limits_single_json_null_payload_is_benign ... ok [INFO] [stdout] test rate_limits_network::rate_limits_single_401_uses_remote_authority_for_secret_target ... ok [INFO] [stdout] test rate_limits_single::rate_limits_single_json_request_failed_is_structured ... ok [INFO] [stdout] test prompt_segment_refresh::prompt_segment_background_refresh_survives_prompt_shell_hup ... ok [INFO] [stdout] test prompt_segment_refresh::prompt_segment_refresh_respects_min_interval ... ok [INFO] [stdout] test prompt_segment_refresh::prompt_segment_stale_cache_401_respects_disabled_auto_refresh ... ok [INFO] [stdout] test rate_limits_async::rate_limits_async_watch_rescans_secrets_and_updates_last_rendered_rows ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- parity_oracle::parity_oracle_format_flag_visibility_matches_gemini_for_auth_and_diag_help stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'parity_oracle::parity_oracle_format_flag_visibility_matches_gemini_for_auth_and_diag_help' (4606) panicked at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/nils-test-support-1.21.9/src/bin.rs:27:5: [INFO] [stdout] gemini-cli binary path: NotPresent [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x56820d3d07e1 - <::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt [INFO] [stdout] 1: 0x56820d3e8cba - core[df12db4294e9bfd3]::fmt::write [INFO] [stdout] 2: 0x56820d3d5f5c - as core[df12db4294e9bfd3]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x56820d3a64d6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x56820d3c6439 - std[70759c8f55707aa4]::panicking::default_hook [INFO] [stdout] 5: 0x56820cf6f240 - test[9d35eded1c95d3be]::test_main_inner::::{closure#0} [INFO] [stdout] 6: 0x56820d3c6762 - std[70759c8f55707aa4]::panicking::panic_with_hook [INFO] [stdout] 7: 0x56820d3a6582 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x56820d39e759 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x56820d3a784d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind [INFO] [stdout] 10: 0x56820d3e941c - core[df12db4294e9bfd3]::panicking::panic_fmt [INFO] [stdout] 11: 0x56820d37517c - nils_test_support[e040e27a345e2205]::bin::resolve [INFO] [stdout] 12: 0x56820cef78ef - integration[f1394fb1299cbb81]::parity_oracle::parity_oracle_format_flag_visibility_matches_gemini_for_auth_and_diag_help [INFO] [stdout] 13: 0x56820ced1139 - >::call_once [INFO] [stdout] 14: 0x56820cf6252b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>> [INFO] [stdout] 15: 0x56820cf6fb95 - test[9d35eded1c95d3be]::run_test::{closure#0} [INFO] [stdout] 16: 0x56820cf69454 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 17: 0x56820cf72cf2 - ::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 18: 0x56820d3cf239 - ::new::thread_start [INFO] [stdout] 19: 0x72536adbddfa - [INFO] [stdout] 20: 0x72536ae513d4 - clone [INFO] [stdout] 21: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- parity_oracle::parity_oracle_auth_json_schema_ids_are_provider_specific stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'parity_oracle::parity_oracle_auth_json_schema_ids_are_provider_specific' (4605) panicked at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/nils-test-support-1.21.9/src/bin.rs:27:5: [INFO] [stdout] gemini-cli binary path: NotPresent [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x56820d3d07e1 - <::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt [INFO] [stdout] 1: 0x56820d3e8cba - core[df12db4294e9bfd3]::fmt::write [INFO] [stdout] 2: 0x56820d3d5f5c - as core[df12db4294e9bfd3]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x56820d3a64d6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x56820d3c6439 - std[70759c8f55707aa4]::panicking::default_hook [INFO] [stdout] 5: 0x56820cf6f240 - test[9d35eded1c95d3be]::test_main_inner::::{closure#0} [INFO] [stdout] 6: 0x56820d3c6762 - std[70759c8f55707aa4]::panicking::panic_with_hook [INFO] [stdout] 7: 0x56820d3a6582 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x56820d39e759 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x56820d3a784d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind [INFO] [stdout] 10: 0x56820d3e941c - core[df12db4294e9bfd3]::panicking::panic_fmt [INFO] [stdout] 11: 0x56820d37517c - nils_test_support[e040e27a345e2205]::bin::resolve [INFO] [stdout] 12: 0x56820cef7265 - integration[f1394fb1299cbb81]::parity_oracle::parity_oracle_auth_json_schema_ids_are_provider_specific [INFO] [stdout] 13: 0x56820ced1119 - >::call_once [INFO] [stdout] 14: 0x56820cf6252b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>> [INFO] [stdout] 15: 0x56820cf6fb95 - test[9d35eded1c95d3be]::run_test::{closure#0} [INFO] [stdout] 16: 0x56820cf69454 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 17: 0x56820cf72cf2 - ::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 18: 0x56820d3cf239 - ::new::thread_start [INFO] [stdout] 19: 0x72536adbddfa - [INFO] [stdout] 20: 0x72536ae513d4 - clone [INFO] [stdout] 21: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- parity_oracle::parity_oracle_topology_matches_gemini stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'parity_oracle::parity_oracle_topology_matches_gemini' (4608) panicked at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/nils-test-support-1.21.9/src/bin.rs:27:5: [INFO] [stdout] gemini-cli binary path: NotPresent [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x56820d3d07e1 - <::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt [INFO] [stdout] 1: 0x56820d3e8cba - core[df12db4294e9bfd3]::fmt::write [INFO] [stdout] 2: 0x56820d3d5f5c - as core[df12db4294e9bfd3]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x56820d3a64d6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x56820d3c6439 - std[70759c8f55707aa4]::panicking::default_hook [INFO] [stdout] 5: 0x56820cf6f240 - test[9d35eded1c95d3be]::test_main_inner::::{closure#0} [INFO] [stdout] 6: 0x56820d3c6762 - std[70759c8f55707aa4]::panicking::panic_with_hook [INFO] [stdout] 7: 0x56820d3a6582 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x56820d39e759 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x56820d3a784d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind [INFO] [stdout] 10: 0x56820d3e941c - core[df12db4294e9bfd3]::panicking::panic_fmt [INFO] [stdout] 11: 0x56820d37517c - nils_test_support[e040e27a345e2205]::bin::resolve [INFO] [stdout] 12: 0x56820cef6cb2 - integration[f1394fb1299cbb81]::parity_oracle::parity_oracle_topology_matches_gemini [INFO] [stdout] 13: 0x56820ced10f9 - >::call_once [INFO] [stdout] 14: 0x56820cf6252b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>> [INFO] [stdout] 15: 0x56820cf6fb95 - test[9d35eded1c95d3be]::run_test::{closure#0} [INFO] [stdout] 16: 0x56820cf69454 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 17: 0x56820cf72cf2 - ::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 18: 0x56820d3cf239 - ::new::thread_start [INFO] [stdout] 19: 0x72536adbddfa - [INFO] [stdout] 20: 0x72536ae513d4 - clone [INFO] [stdout] 21: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- prompts::prompts_read_template_errors_when_template_unreadable stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'prompts::prompts_read_template_errors_when_template_unreadable' (4692) panicked at tests/integration/prompts.rs:122:52: [INFO] [stdout] called `Result::unwrap_err()` on an `Ok` value: ("/tmp/.tmp0XTiIq/zdotdir/prompts/unreadable.md", "hi") [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x56820d3d07e1 - <::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt [INFO] [stdout] 1: 0x56820d3e8cba - core[df12db4294e9bfd3]::fmt::write [INFO] [stdout] 2: 0x56820d3d5f5c - as core[df12db4294e9bfd3]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x56820d3a64d6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x56820d3c6439 - std[70759c8f55707aa4]::panicking::default_hook [INFO] [stdout] 5: 0x56820cf6f240 - test[9d35eded1c95d3be]::test_main_inner::::{closure#0} [INFO] [stdout] 6: 0x56820d3c6762 - std[70759c8f55707aa4]::panicking::panic_with_hook [INFO] [stdout] 7: 0x56820d3a6582 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x56820d39e759 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x56820d3a784d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind [INFO] [stdout] 10: 0x56820d3e941c - core[df12db4294e9bfd3]::panicking::panic_fmt [INFO] [stdout] 11: 0x56820d3e91f2 - core[df12db4294e9bfd3]::result::unwrap_failed [INFO] [stdout] 12: 0x56820cef3918 - integration[f1394fb1299cbb81]::prompts::prompts_read_template_errors_when_template_unreadable [INFO] [stdout] 13: 0x56820cedb429 - >::call_once [INFO] [stdout] 14: 0x56820cf6252b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>> [INFO] [stdout] 15: 0x56820cf6fb95 - test[9d35eded1c95d3be]::run_test::{closure#0} [INFO] [stdout] 16: 0x56820cf69454 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 17: 0x56820cf72cf2 - ::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 18: 0x56820d3cf239 - ::new::thread_start [INFO] [stdout] 19: 0x72536adbddfa - [INFO] [stdout] 20: 0x72536ae513d4 - clone [INFO] [stdout] 21: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] parity_oracle::parity_oracle_auth_json_schema_ids_are_provider_specific [INFO] [stdout] parity_oracle::parity_oracle_format_flag_visibility_matches_gemini_for_auth_and_diag_help [INFO] [stdout] parity_oracle::parity_oracle_topology_matches_gemini [INFO] [stdout] prompts::prompts_read_template_errors_when_template_unreadable [INFO] [stdout] [INFO] [stdout] test result: FAILED. 284 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.24s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--test integration` [INFO] running `Command { std: "docker" "inspect" "391b43f20592958eba6cf265cf06d87ab2687345b44588b6584eeb54a5cb2b86", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "391b43f20592958eba6cf265cf06d87ab2687345b44588b6584eeb54a5cb2b86", kill_on_drop: false }` [INFO] [stdout] 391b43f20592958eba6cf265cf06d87ab2687345b44588b6584eeb54a5cb2b86