[INFO] cloning repository https://github.com/hiQianFan/openmux [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hiQianFan/openmux" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FhiQianFan%2Fopenmux", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FhiQianFan%2Fopenmux'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d7ff92b2eba06d22170b2c72c6d8d2776191ef20 [INFO] testing hiQianFan/openmux against 1.97.0-beta.6 for beta-1.98-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FhiQianFan%2Fopenmux" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-1-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/hiQianFan/openmux [INFO] finished tweaking git repo https://github.com/hiQianFan/openmux [INFO] tweaked toml for git repo https://github.com/hiQianFan/openmux written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/hiQianFan/openmux on toolchain 1.97.0-beta.6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/hiQianFan/openmux already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded toml_write v0.1.2 [INFO] [stderr] Downloaded inquire v0.9.4 [INFO] [stderr] Downloaded rusqlite v0.32.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] c65352e4582e2d82ce74c9ec00b1be80711d407840e3b02517efac0478dddc67 [INFO] running `Command { std: "docker" "start" "c65352e4582e2d82ce74c9ec00b1be80711d407840e3b02517efac0478dddc67", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c65352e4582e2d82ce74c9ec00b1be80711d407840e3b02517efac0478dddc67", 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" "c65352e4582e2d82ce74c9ec00b1be80711d407840e3b02517efac0478dddc67" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c65352e4582e2d82ce74c9ec00b1be80711d407840e3b02517efac0478dddc67", 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" "c65352e4582e2d82ce74c9ec00b1be80711d407840e3b02517efac0478dddc67" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling quote v1.0.46 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling libc v0.2.186 [INFO] [stderr] Compiling zerocopy v0.8.52 [INFO] [stderr] Compiling smallvec v1.15.2 [INFO] [stderr] Compiling typenum v1.20.1 [INFO] [stderr] Compiling bitflags v2.13.0 [INFO] [stderr] Compiling shlex v2.0.1 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling pkg-config v0.3.33 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling serde_json v1.0.150 [INFO] [stderr] Compiling autocfg v1.5.1 [INFO] [stderr] Compiling memchr v2.8.2 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling itoa v1.0.18 [INFO] [stderr] Compiling hashbrown v0.17.1 [INFO] [stderr] Compiling unicode-segmentation v1.13.3 [INFO] [stderr] Compiling cc v1.2.65 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling log v0.4.33 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling anyhow v1.0.103 [INFO] [stderr] Compiling fuzzy-matcher v0.3.7 [INFO] [stderr] Compiling syn v2.0.118 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling dyn-clone v1.0.20 [INFO] [stderr] Compiling chrono v0.4.45 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.2.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling clap_derive v4.6.1 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling inquire v0.9.4 [INFO] [stderr] Compiling comfy-table v7.2.2 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling clap v4.6.1 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling rusqlite v0.32.1 [INFO] [stderr] Compiling prismux-core v0.2.3 (/opt/rustwide/workdir/crates/prismux-core) [INFO] [stderr] Compiling prismux-plugin-claude v0.2.3 (/opt/rustwide/workdir/crates/prismux-plugin-claude) [INFO] [stderr] Compiling prismux-app v0.2.3 (/opt/rustwide/workdir/crates/prismux-app) [INFO] [stderr] Compiling prismux-plugin-codex v0.2.3 (/opt/rustwide/workdir/crates/prismux-plugin-codex) [INFO] [stderr] Compiling prismux-menubar-ffi v0.2.3 (/opt/rustwide/workdir/crates/prismux-menubar-ffi) [INFO] [stderr] Compiling prismux-cli v0.2.3 (/opt/rustwide/workdir/crates/prismux-cli) [INFO] [stdout] warning: unused import: `process::Command as ProcessCommand` [INFO] [stdout] --> crates/prismux-cli/src/input.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | process::Command as ProcessCommand, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `process::Command as ProcessCommand` [INFO] [stdout] --> crates/prismux-cli/src/input.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | process::Command as ProcessCommand, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 51.34s [INFO] running `Command { std: "docker" "inspect" "c65352e4582e2d82ce74c9ec00b1be80711d407840e3b02517efac0478dddc67", 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" "c65352e4582e2d82ce74c9ec00b1be80711d407840e3b02517efac0478dddc67" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Compiling fastrand v2.4.1 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling rusqlite v0.32.1 [INFO] [stderr] Compiling prismux-core v0.2.3 (/opt/rustwide/workdir/crates/prismux-core) [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling prismux-plugin-claude v0.2.3 (/opt/rustwide/workdir/crates/prismux-plugin-claude) [INFO] [stderr] Compiling prismux-app v0.2.3 (/opt/rustwide/workdir/crates/prismux-app) [INFO] [stderr] Compiling prismux-plugin-codex v0.2.3 (/opt/rustwide/workdir/crates/prismux-plugin-codex) [INFO] [stderr] Compiling inquire v0.9.4 [INFO] [stderr] Compiling comfy-table v7.2.2 [INFO] [stderr] Compiling prismux-menubar-ffi v0.2.3 (/opt/rustwide/workdir/crates/prismux-menubar-ffi) [INFO] [stderr] Compiling prismux-cli v0.2.3 (/opt/rustwide/workdir/crates/prismux-cli) [INFO] [stdout] warning: unused import: `process::Command as ProcessCommand` [INFO] [stdout] --> crates/prismux-cli/src/input.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | process::Command as ProcessCommand, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `process::Command as ProcessCommand` [INFO] [stdout] --> crates/prismux-cli/src/input.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | process::Command as ProcessCommand, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 21.90s [INFO] running `Command { std: "docker" "inspect" "c65352e4582e2d82ce74c9ec00b1be80711d407840e3b02517efac0478dddc67", 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" "c65352e4582e2d82ce74c9ec00b1be80711d407840e3b02517efac0478dddc67" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `process::Command as ProcessCommand` [INFO] [stderr] --> crates/prismux-cli/src/input.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | process::Command as ProcessCommand, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `prismux-cli` (bin "prismux" test) generated 1 warning (run `cargo fix --bin "prismux" -p prismux-cli --tests` to apply 1 suggestion) [INFO] [stderr] warning: `prismux-cli` (bin "pmx" test) generated 1 warning (1 duplicate) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.20s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/prismux_app-652a1f3975feeba5) [INFO] [stdout] running 37 tests [INFO] [stdout] test api::tests::accounts_report_keeps_one_active_target_per_provider ... ok [INFO] [stdout] test api::tests::account_refresh_calls_single_account_refresh_once ... ok [INFO] [stdout] test api::tests::accounts_report_keeps_safe_diagnostic_when_plugin_is_unavailable ... ok [INFO] [stdout] test api::tests::accounts_marks_single_active_and_redacts_diagnostics ... ok [INFO] [stdout] test api::tests::background_refresh_respects_backend_floor ... ok [INFO] [stdout] test api::tests::consume_reset_credit_failure_returns_safe_operation_result ... ok [INFO] [stdout] test api::tests::dashboard_allows_no_active_account ... ok [INFO] [stdout] test api::tests::consume_reset_credit_reports_outcome_and_refreshes_provider ... ok [INFO] [stdout] test api::tests::accounts_report_maps_reset_credit_metadata ... ok [INFO] [stdout] test api::tests::accounts_report_normalizes_to_one_active_target ... ok [INFO] [stdout] test api::tests::default_menubar_query_selects_all_providers ... ok [INFO] [stdout] test api::tests::provider_refresh_calls_single_account_refresh_for_each_account ... ok [INFO] [stdout] test api::tests::refresh_error_backoff_skips_followup_background_request ... ok [INFO] [stdout] test api::tests::provider_view_requires_provider_scope ... ok [INFO] [stdout] test api::tests::stale_quota_keeps_last_known_quota ... ok [INFO] [stdout] test api::tests::refresh_runs_while_an_operation_is_in_progress ... ok [INFO] [stdout] test api::tests::refresh_failure_preserves_account_listing_error ... ok [INFO] [stdout] test compatibility::tests::future_state_schema_fails_closed ... ok [INFO] [stdout] test api::tests::stale_refresh_generation_is_skipped_without_provider_call ... ok [INFO] [stdout] test api::tests::switch_failure_does_not_mark_target_switched ... ok [INFO] [stdout] test query::tests::global_quota_average_folds_raw_reporting_accounts ... ok [INFO] [stdout] test runtime::tests::runtime_view_exposes_backoff_and_failure_gate ... ok [INFO] [stdout] test api::tests::switch_re_resolves_stable_local_id ... ok [INFO] [stdout] test runtime::tests::interactive_refresh_bypasses_freshness_and_backoff_gates ... ok [INFO] [stdout] test compatibility::tests::compatibility_exposes_distribution_and_provider_matrix ... ok [INFO] [stdout] test diagnostics::redaction::tests::redacts_common_secret_markers ... ok [INFO] [stdout] test query::tests::quota_facts_skip_missing_quota_and_keep_reset_credit_separate ... ok [INFO] [stdout] test api::tests::switch_rejects_removed_target_before_plugin_write ... ok [INFO] [stdout] test support::tests::support_report_redacts_recent_diagnostics ... ok [INFO] [stdout] test query::tests::quota_facts_return_none_when_nothing_reports_quota ... ok [INFO] [stdout] test settings::tests::proxy_toggle_off_preserves_url ... ok [INFO] [stdout] test compatibility::tests::unavailable_optional_modules_keep_contract_compatible_with_guidance ... ok [INFO] [stdout] test query::tests::best_alternative_uses_action_eligibility_and_stable_tie_break ... ok [INFO] [stdout] test settings::tests::future_settings_schema_fails_closed ... ok [INFO] [stdout] test settings::tests::proxy_toggle_on_survives_empty_url ... ok [INFO] [stdout] test settings::tests::update_settings_persists_view ... ok [INFO] [stdout] test settings::tests::settings_are_typed_and_default_to_safe_values ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/pmx.rs (/opt/rustwide/target/debug/deps/pmx-0ee6238191abecbe) [INFO] [stdout] [INFO] [stdout] running 16 tests [INFO] [stdout] test app::tests::account_table_header_omits_auth_and_expires ... ok [INFO] [stdout] test app::tests::overview_overall_averages_all_usage_limits_not_tightest_summary ... ok [INFO] [stdout] test app::tests::refresh_selected_account_uses_resolved_account_target ... ok [INFO] [stdout] test app::tests::login_use_hint_prefers_alias_and_falls_back_to_number ... ok [INFO] [stdout] test app::tests::refresh_selected_account_rejects_profile_target ... ok [INFO] [stdout] test app::tests::account_choice_includes_usage_reset_time ... ok [INFO] [stdout] test app::tests::reset_credit_cli_rejects_profile_target ... ok [INFO] [stdout] test app::tests::reset_credit_outcome_messages_are_clear ... ok [INFO] [stdout] test app::tests::reset_credit_requires_yes_without_tty ... ok [INFO] [stdout] test app::tests::reset_credit_cli_consumes_confirmed_codex_account ... ok [INFO] [stdout] test app::tests::reset_credit_cli_rejects_non_codex_provider_before_prompt ... ok [INFO] [stdout] test app::tests::selector_resolution_picks_unique_account_or_profile_and_rejects_ambiguity ... ok [INFO] [stdout] test app::tests::selector_resolution_uses_display_index_for_single_plugin_accounts_and_profiles ... ok [INFO] [stdout] test app::tests::target_choice_can_return_display_selector_for_aggregated_picker ... ok [INFO] [stdout] test app::tests::usage_limit_display_includes_reset_without_year ... ok [INFO] [stdout] test app::tests::help_includes_remove_command ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/prismux-add43af2cda759ac) [INFO] [stdout] [INFO] [stdout] running 16 tests [INFO] [stdout] test app::tests::account_table_header_omits_auth_and_expires ... ok [INFO] [stdout] test app::tests::account_choice_includes_usage_reset_time ... ok [INFO] [stdout] test app::tests::login_use_hint_prefers_alias_and_falls_back_to_number ... ok [INFO] [stdout] test app::tests::refresh_selected_account_rejects_profile_target ... ok [INFO] [stdout] test app::tests::refresh_selected_account_uses_resolved_account_target ... ok [INFO] [stdout] test app::tests::overview_overall_averages_all_usage_limits_not_tightest_summary ... ok [INFO] [stdout] test app::tests::reset_credit_cli_rejects_non_codex_provider_before_prompt ... ok [INFO] [stdout] test app::tests::reset_credit_cli_rejects_profile_target ... ok [INFO] [stdout] test app::tests::reset_credit_outcome_messages_are_clear ... ok [INFO] [stdout] test app::tests::reset_credit_requires_yes_without_tty ... ok [INFO] [stdout] test app::tests::target_choice_can_return_display_selector_for_aggregated_picker ... ok [INFO] [stdout] test app::tests::usage_limit_display_includes_reset_without_year ... ok [INFO] [stdout] test app::tests::reset_credit_cli_consumes_confirmed_codex_account ... ok [INFO] [stdout] test app::tests::help_includes_remove_command ... ok [INFO] [stdout] test app::tests::selector_resolution_uses_display_index_for_single_plugin_accounts_and_profiles ... ok [INFO] [stdout] test app::tests::selector_resolution_picks_unique_account_or_profile_and_rejects_ambiguity ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/prismux_core-96afe3d937fa4fd5) [INFO] [stdout] [INFO] [stdout] running 23 tests [INFO] [stdout] test state_store::tests::merge_account_into_validates_accounts_and_provider ... ok [INFO] [stdout] test state_store::tests::merge_account_into_uses_active_removed_credentials_even_when_older ... ok [INFO] [stdout] test state_store::tests::merge_account_into_preserves_colliding_child_rows ... ok [INFO] [stdout] test storage::tests::atomic_private_write_replaces_file_without_leaving_temp_file ... ok [INFO] [stdout] test storage::tests::prune_backup_files_keeps_latest_matching_files ... ok [INFO] [stdout] test state_store::tests::merge_account_into_rolls_back_every_change_on_late_failure ... ok [INFO] [stdout] test state_store::tests::merge_account_into_uses_newer_removed_credentials ... ok [INFO] [stdout] test state_store::tests::sequential_merges_keep_the_newest_credentials ... ok [INFO] [stdout] test target::tests::rejects_ambiguous_alias_and_profile_name ... ok [INFO] [stdout] test target::tests::rejects_ambiguous_display_index_and_numeric_name ... ok [INFO] [stdout] test state_store::tests::account_and_profile_are_single_active_target_per_provider ... ok [INFO] [stdout] test state_store::tests::remove_account_compacts_display_numbers_before_next_import ... ok [INFO] [stdout] test state_store::tests::remove_profile_deletes_profile_and_active_target ... ok [INFO] [stdout] test state_store::tests::remove_account_deletes_account_scoped_state ... ok [INFO] [stdout] test target::tests::resolves_profile_by_display_index_after_accounts ... ok [INFO] [stdout] test state_store::tests::subject_upsert_deletes_duplicate_auth_hash_account ... ok [INFO] [stdout] test state_store::tests::update_account_auth_is_scoped_to_provider_and_local_id ... ok [INFO] [stdout] test state_store::tests::migration_rebuilds_legacy_state_schema ... ok [INFO] [stdout] test state_store::tests::empty_prismux_store_imports_legacy_openmux_targets ... ok [INFO] [stdout] test login_control::tests::cancel_kills_a_long_running_child ... ok [INFO] [stdout] test state_store::tests::account_history_keeps_recent_rows_only ... ok [INFO] [stdout] test login_control::tests::natural_completion_returns_status ... ok [INFO] [stdout] test login_control::tests::timeout_kills_a_long_running_child ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.76s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/prismux_menubar_ffi-b3699f4f19ce2270) [INFO] [stdout] [INFO] [stdout] running 15 tests [INFO] [stdout] test tests::bad_json_returns_error_envelope ... ok [INFO] [stdout] test tests::bad_utf8_returns_error_envelope ... ok [INFO] [stdout] test tests::null_pointer_returns_error_envelope ... ok [INFO] [stdout] test tests::unsupported_schema_returns_safe_error ... ok [INFO] [stdout] test tests::panic_returns_error_envelope ... ok [INFO] [stdout] test tests::unknown_op_returns_safe_error ... ok [INFO] [stdout] test tests::application_error_is_redacted ... ok [INFO] [stdout] test tests::accounts_dashboard_switch_and_refresh_match_golden_fixtures ... ok [INFO] [stdout] test tests::accounts_returns_versioned_envelope ... ok [INFO] [stdout] test tests::dashboard_without_provider_returns_all_default_providers ... ok [INFO] [stdout] test tests::ffi_dashboard_matches_control_plane_for_same_state_root ... ok [INFO] [stdout] test tests::ffi_success_response_can_be_freed_once ... ok [INFO] [stdout] test tests::dashboard_falls_back_to_last_good_snapshot ... ok [INFO] [stdout] test tests::ffi_uses_temp_state_and_codex_home_for_accounts_dashboard_refresh_and_switch ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/prismux_plugin_claude-6706acacaf7fda58) [INFO] [stdout] test tests::request_contract_ignores_additive_optional_fields ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.61s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 16 tests [INFO] [stdout] test plugin::tests::claude_account_import_rejects_incomplete_oauth_payload ... ok [INFO] [stdout] test plugin::tests::claude_profile_uses_explicit_prismux_profile_name_without_storing_it_as_env ... ok [INFO] [stdout] test plugin::tests::use_claude_profile_reports_missing_selector ... ok [INFO] [stdout] test plugin::tests::duplicate_claude_profile_updates_existing_number ... ok [INFO] [stdout] test plugin::tests::claude_account_switch_rejects_tampered_snapshot ... ok [INFO] [stdout] test plugin::tests::claude_account_switch_keeps_current_credential_when_backend_write_fails ... ok [INFO] [stdout] test plugin::tests::imports_and_switches_fake_keychain_claude_account ... ok [INFO] [stdout] test plugin::tests::imports_lists_and_uses_claude_profile_without_leaking_registry_secret ... ok [INFO] [stdout] test plugin::tests::imports_and_switches_plaintext_claude_account_without_registry_token_leak ... ok [INFO] [stdout] test plugin::tests::claude_account_switch_rolls_back_credential_when_oauth_metadata_write_fails ... ok [INFO] [stdout] test plugin::tests::duplicate_claude_account_import_preserves_existing_number ... ok [INFO] [stdout] test plugin::tests::login_runs_official_claude_cli_then_imports_account_snapshot ... ok [INFO] [stdout] test plugin::tests::remove_claude_profile_deletes_snapshot_and_excludes_from_list ... ok [INFO] [stdout] test plugin::tests::login_with_activate_switches_to_the_new_account ... ok [INFO] [stdout] test plugin::tests::remove_claude_account_deletes_snapshots_and_excludes_from_list ... ok [INFO] [stdout] test plugin::tests::claude_account_and_profile_active_states_are_mutually_exclusive ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/prismux_plugin_codex-df8ce6cfedd788b1) [INFO] [stdout] [INFO] [stdout] running 54 tests [INFO] [stdout] test plugin::tests::codex_usage_proxy_reads_prismux_settings ... ok [INFO] [stdout] test plugin::tests::extracts_account_from_account_id_when_jwt_has_no_account_claims ... ok [INFO] [stdout] test plugin::tests::extracts_account_and_plan_from_codex_id_token_like_official_codex ... ok [INFO] [stdout] test plugin::tests::omits_codex_usage_reset_credits_when_missing_or_invalid ... ok [INFO] [stdout] test plugin::tests::parses_codex_reset_credit_detail_expiries ... ok [INFO] [stdout] test plugin::tests::parses_codex_usage_auth_fedramp_claim ... ok [INFO] [stdout] test plugin::tests::parses_codex_usage_auth_without_exposing_tokens ... ok [INFO] [stdout] test plugin::tests::parses_codex_usage_reset_credits ... ok [INFO] [stdout] test plugin::tests::parses_codex_usage_reset_credits_from_string_count ... ok [INFO] [stdout] test plugin::tests::parses_codex_usage_windows_as_structured_limits ... ok [INFO] [stdout] test plugin::tests::parses_curl_http_output_error_status ... ok [INFO] [stdout] test plugin::tests::parses_curl_http_output_status_without_touching_body ... ok [INFO] [stdout] test plugin::tests::parses_reset_credit_outcome_codes ... ok [INFO] [stdout] test plugin::tests::imports_openai_compatible_kv_without_storing_raw_api_key ... ok [INFO] [stdout] test plugin::tests::alias_set_rejects_all_digit_aliases ... ok [INFO] [stdout] test plugin::tests::imports_codex_toml_gateway_config_as_profile_file ... ok [INFO] [stdout] test plugin::tests::legacy_duplicate_codex_accounts_are_merged_when_subject_can_be_backfilled ... ok [INFO] [stdout] test plugin::tests::list_accounts_uses_cached_usage_without_refreshing_remote_quota ... ok [INFO] [stdout] test plugin::tests::clear_alias_removes_alias_without_removing_account ... ok [INFO] [stdout] test plugin::tests::rejects_unknown_reset_credit_outcome_code ... ok [INFO] [stdout] test plugin::tests::expired_runtime_adopts_fresher_snapshot_without_network_refresh ... ok [INFO] [stdout] test plugin::tests::duplicate_codex_subject_updates_existing_account_even_when_auth_hash_changes ... ok [INFO] [stdout] test plugin::tests::duplicate_save_updates_existing_account_instead_of_appending ... ok [INFO] [stdout] test plugin::tests::provider_switch_preserves_external_live_config_changes ... ok [INFO] [stdout] test plugin::tests::codex_account_switch_ignores_legacy_default_config_snapshot ... ok [INFO] [stdout] test plugin::tests::reset_credit_detail_parser_handles_empty_or_missing_credits ... ok [INFO] [stdout] test plugin::tests::reset_credit_detail_parser_ignores_unavailable_or_malformed_entries ... ok [INFO] [stdout] test plugin::tests::provider_switch_rejects_concurrent_codex_config_change ... ok [INFO] [stdout] test plugin::tests::refresh_keeps_usage_snapshot_when_reset_credit_detail_fails ... ok [INFO] [stdout] test plugin::tests::login_cleans_up_temporary_codex_home_after_import ... ok [INFO] [stdout] test plugin::tests::sha256_matches_known_vector ... ok [INFO] [stdout] test plugin::tests::refresh_mints_new_token_when_access_token_expired ... ok [INFO] [stdout] test plugin::tests::summarizes_known_account_availability_by_tightest_remaining_capacity ... ok [INFO] [stdout] test plugin::tests::inactive_managed_token_refresh_stays_in_managed_scope ... ok [INFO] [stdout] test plugin::tests::save_rejects_alias_used_by_another_account ... ok [INFO] [stdout] test plugin::tests::remove_profile_deletes_codex_profile_file ... ok [INFO] [stdout] test plugin::tests::remove_profile_refuses_externally_modified_provider_section ... ok [INFO] [stdout] test plugin::tests::refresh_accounts_refreshes_usage_for_every_saved_account ... ok [INFO] [stdout] test plugin::tests::same_email_with_different_codex_account_subjects_stays_separate ... ok [INFO] [stdout] test plugin::tests::remove_account_deletes_snapshot_and_excludes_from_list ... ok [INFO] [stdout] test plugin::tests::refresh_inactive_account_uses_managed_runtime_without_changing_active_auth ... ok [INFO] [stdout] test plugin::tests::codex_account_switch_deactivates_managed_provider_config ... ok [INFO] [stdout] test plugin::tests::switch_rejects_tampered_auth_snapshot ... ok [INFO] [stdout] test plugin::tests::duplicate_login_updates_existing_account_instead_of_appending ... ok [INFO] [stdout] test plugin::tests::use_target_rejects_account_profile_selector_ambiguity ... ok [INFO] [stdout] test plugin::tests::snapshot_write_failure_keeps_active_auth_and_metadata_unchanged ... ok [INFO] [stdout] test plugin::tests::login_assigns_numbers_supports_alias_device_auth_and_use ... ok [INFO] [stdout] test plugin::tests::switching_rejects_auth_changed_after_snapshot_sync ... ok [INFO] [stdout] test plugin::tests::switching_persists_rotated_active_auth_before_replacing_it ... ok [INFO] [stdout] test plugin::tests::relogin_of_active_account_keeps_new_credentials_active_without_use_flag ... ok [INFO] [stdout] test plugin::tests::switching_rejects_active_auth_from_a_different_account ... ok [INFO] [stdout] test plugin::tests::switching_rejects_changed_auth_when_identity_cannot_be_verified ... ok [INFO] [stdout] test plugin::tests::saves_lists_and_switches_codex_auth_snapshots_by_number_and_alias ... ok [INFO] [stderr] Doc-tests prismux_app [INFO] [stdout] test plugin::tests::relogin_read_failure_rolls_back_active_snapshot_metadata ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.84s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests prismux_core [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests prismux_menubar_ffi [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests prismux_plugin_claude [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests prismux_plugin_codex [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "c65352e4582e2d82ce74c9ec00b1be80711d407840e3b02517efac0478dddc67", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c65352e4582e2d82ce74c9ec00b1be80711d407840e3b02517efac0478dddc67", kill_on_drop: false }` [INFO] [stdout] c65352e4582e2d82ce74c9ec00b1be80711d407840e3b02517efac0478dddc67