[INFO] cloning repository https://github.com/indie-hub/crowded [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/indie-hub/crowded" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Findie-hub%2Fcrowded", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Findie-hub%2Fcrowded'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] cec888ef49233d91bc88a5befa34f491f8b410eb [INFO] testing indie-hub/crowded against 1.99.0-beta.1+cargoflags=--release for beta-release-1.99-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Findie-hub%2Fcrowded" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/indie-hub/crowded [INFO] finished tweaking git repo https://github.com/indie-hub/crowded [INFO] tweaked toml for git repo https://github.com/indie-hub/crowded written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/indie-hub/crowded on toolchain 1.99.0-beta.1 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/indie-hub/crowded 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.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] e3c09d67a65b46c8713fb0fe1d57d219ed52305f5c5ab5e086e474e31a6a2f0f [INFO] running `Command { std: "docker" "start" "e3c09d67a65b46c8713fb0fe1d57d219ed52305f5c5ab5e086e474e31a6a2f0f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e3c09d67a65b46c8713fb0fe1d57d219ed52305f5c5ab5e086e474e31a6a2f0f", 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" "e3c09d67a65b46c8713fb0fe1d57d219ed52305f5c5ab5e086e474e31a6a2f0f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e3c09d67a65b46c8713fb0fe1d57d219ed52305f5c5ab5e086e474e31a6a2f0f", 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" "e3c09d67a65b46c8713fb0fe1d57d219ed52305f5c5ab5e086e474e31a6a2f0f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.189 [INFO] [stderr] Compiling rustversion v1.0.23 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling thiserror v2.0.19 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling hashbrown v0.17.1 [INFO] [stderr] Compiling either v1.17.0 [INFO] [stderr] Compiling serde_core v1.0.229 [INFO] [stderr] Compiling unicode-segmentation v1.13.3 [INFO] [stderr] Compiling instability v0.3.12 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling critical-section v1.2.0 [INFO] [stderr] Compiling syn v2.0.119 [INFO] [stderr] Compiling syn v3.0.3 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling smallvec v1.15.2 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling line-clipping v0.3.7 [INFO] [stderr] Compiling memchr v2.8.3 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling nix v0.28.0 [INFO] [stderr] Compiling arrayvec v0.7.8 [INFO] [stderr] Compiling winnow v1.0.4 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling shell-words v1.1.1 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling toml_writer v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling compact_str v0.9.1 [INFO] [stderr] Compiling vte v0.15.0 [INFO] [stderr] Compiling vt100 v0.16.2 (https://github.com/second-state/vt100-rust?rev=ac79c37448d381ff9821a223ba487a6ac00f93cf#ac79c374) [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling toml_parser v1.1.3+spec-1.1.0 [INFO] [stderr] Compiling lru v0.18.1 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling thiserror-impl v2.0.19 [INFO] [stderr] Compiling serde_derive v1.0.229 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.2.2 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling time v0.3.54 [INFO] [stderr] Compiling serial2 v0.2.37 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling kasuari v0.4.12 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling toml_datetime v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling serde_spanned v1.1.1 [INFO] [stderr] Compiling serde_json v1.0.151 [INFO] [stderr] Compiling strum_macros v0.28.0 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling toml v1.1.4+spec-1.1.0 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling serde v1.0.229 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling filedescriptor v0.8.3 [INFO] [stderr] Compiling portable-pty v0.9.0 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling strum v0.28.0 [INFO] [stderr] Compiling ratatui-core v0.1.2 [INFO] [stderr] Compiling ratatui-widgets v0.3.2 [INFO] [stderr] Compiling ratatui-crossterm v0.1.2 [INFO] [stderr] Compiling ratatui-macros v0.7.2 [INFO] [stderr] Compiling tui-term v0.3.4 [INFO] [stderr] Compiling ratatui v0.30.2 [INFO] [stderr] Compiling crowded v0.43.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 31.07s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.28.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5` [INFO] running `Command { std: "docker" "inspect" "e3c09d67a65b46c8713fb0fe1d57d219ed52305f5c5ab5e086e474e31a6a2f0f", 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" "e3c09d67a65b46c8713fb0fe1d57d219ed52305f5c5ab5e086e474e31a6a2f0f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.2 [INFO] [stderr] Compiling ratatui v0.30.2 [INFO] [stderr] Compiling crowded v0.43.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 19.86s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.28.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5` [INFO] running `Command { std: "docker" "inspect" "e3c09d67a65b46c8713fb0fe1d57d219ed52305f5c5ab5e086e474e31a6a2f0f", 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" "e3c09d67a65b46c8713fb0fe1d57d219ed52305f5c5ab5e086e474e31a6a2f0f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.18s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.28.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5` [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/release/deps/crowded-d94359862d60741f) [INFO] [stdout] [INFO] [stdout] running 222 tests [INFO] [stdout] test app::tests::a_resume_that_started_fresh_still_takes_the_intro ... ok [INFO] [stdout] test app::tests::a_torn_wheel_report_never_reaches_the_guest ... ok [INFO] [stdout] test app::tests::delivery_gate_waits_for_each_tui_busy_cycle ... ok [INFO] [stdout] test app::tests::delivery_fuse_trips_and_resets_at_its_limit ... ok [INFO] [stdout] test app::tests::delivery_fuse_zero_limit_never_trips ... ok [INFO] [stdout] test app::tests::effective_model_prefers_fresh_self_report_and_keeps_control_override ... ok [INFO] [stdout] test app::tests::intro_ceiling_sends_a_stuck_rooms_intro_without_a_ready_heuristic ... ok [INFO] [stdout] test app::tests::message_hats_are_visible_but_optional ... ok [INFO] [stdout] test app::tests::house_rules_identify_the_room_roster_and_delegation_guidance ... ok [INFO] [stdout] test app::tests::only_matching_wheel_directions_are_drained ... ok [INFO] [stdout] test app::tests::detail_collection_is_cached_outside_render_path ... ok [INFO] [stdout] test app::tests::pulse_sample_marks_a_fresh_transient_self_report_as_fresh ... ok [INFO] [stdout] test app::tests::pulse_total_sums_only_known_costs ... ok [INFO] [stdout] test app::tests::render_pulse_focused_title_stays_cyan ... ok [INFO] [stdout] test app::tests::render_pulse_lines_separates_rooms_and_appends_total ... ok [INFO] [stdout] test app::tests::render_pulse_lines_renders_inline_detail_concisely ... ok [INFO] [stdout] test app::tests::render_pulse_state_color_error_red ... ok [INFO] [stdout] test app::tests::render_pulse_state_color_offline_red ... ok [INFO] [stdout] test app::tests::render_pulse_state_color_starting_yellow ... ok [INFO] [stdout] test app::tests::detail_only_pulse_does_not_refresh_stale_sample_or_create_state ... ok [INFO] [stdout] test app::tests::render_pulse_state_color_ready_green ... ok [INFO] [stdout] test app::tests::render_pulse_state_color_unknown_unstyled ... ok [INFO] [stdout] test app::tests::pane_size_uses_the_bordered_inner_area_and_clamps ... ok [INFO] [stdout] test app::tests::pulse_panel_renders_concisely_at_real_width_and_excludes_completed_todos ... ok [INFO] [stdout] test app::tests::quiet_threshold_grants_headroom_panes_extra_startup_grace ... ok [INFO] [stdout] test app::tests::render_pulse_state_color_thinking_yellow ... ok [INFO] [stdout] test app::tests::roster_state_does_not_stick_on_a_resumed_rooms_stale_starting_self_report ... ok [INFO] [stdout] test app::tests::pane_areas_tile_any_number_of_rooms ... ok [INFO] [stdout] test app::tests::pulse_entry_style_highlights_only_the_focused_room ... ok [INFO] [stdout] test app::tests::roster_state_prefers_offline_pulses_and_real_readiness ... ok [INFO] [stdout] test app::tests::render_pulse_state_color_working_yellow ... ok [INFO] [stdout] test app::tests::tui_pulse_label_drops_source_and_shows_state_plus_age ... ok [INFO] [stdout] test app::tests::stale_transient_pulse_yields_to_a_demonstrably_ready_screen ... ok [INFO] [stdout] test app::tests::resume_control_skips_intro_but_clear_and_configure_resend_it ... ok [INFO] [stdout] test app::tests::render_pulse_lines_truncates_narrow_detail ... ok [INFO] [stdout] test app::tests::pulse_badges_are_compact_and_conditional ... ok [INFO] [stdout] test app::tests::typing_after_escape_survives_in_order ... ok [INFO] [stdout] test app::tests::resume_control_resets_pulse_so_roster_shows_ready_immediately ... ok [INFO] [stdout] test app::tests::welcome_roster_entries_report_configured_values_or_truthful_fallbacks ... ok [INFO] [stdout] test config::tests::fuse_size_defaults_to_20_when_omitted ... ok [INFO] [stdout] test app::tests::whisper_submit_resend_waits_for_busy_then_ready_or_ceiling ... ok [INFO] [stdout] test config::tests::fuse_size_is_configurable ... ok [INFO] [stdout] test config::tests::fuse_size_zero_means_unlimited ... ok [INFO] [stdout] test config::tests::guest_spec_selects_transport_and_name ... ok [INFO] [stdout] test config::tests::legacy_sse_cannot_target_codex ... ok [INFO] [stdout] test config::tests::native_toolbox_mode_does_not_inject_launch_overrides ... ok [INFO] [stdout] test config::tests::invalid_room_scheduling_values_are_rejected ... ok [INFO] [stdout] test config::tests::parse_fuse_size_input_accepts_zero_and_positive ... ok [INFO] [stdout] test config::tests::parse_fuse_size_input_rejects_non_numeric ... ok [INFO] [stdout] test config::tests::parse_room_field_inputs_accept_valid_values ... ok [INFO] [stdout] test config::tests::parse_room_field_inputs_reject_invalid_values ... ok [INFO] [stdout] test command::tests::non_windows_commands_stay_direct ... ok [INFO] [stdout] test app::tests::normal_mode_d_is_not_intercepted_as_detail_shortcut ... ok [INFO] [stdout] test config::tests::context_mode_uses_mcp_for_claude_and_codex_but_a_plugin_for_opencode ... ok [INFO] [stdout] test config::tests::persist_fuse_size_leaves_file_unchanged_on_invalid_input ... ok [INFO] [stdout] test config::tests::room_scheduling_parses_and_omits_empty_metadata ... ok [INFO] [stdout] test config::tests::remote_mcp_url_requires_a_host ... ok [INFO] [stdout] test config::tests::shared_mcp_is_adapted_for_each_native_cli ... ok [INFO] [stdout] test config::tests::shared_mcp_skips_shell_rooms ... ok [INFO] [stdout] test config::tests::remote_mcps_are_adapted_for_each_native_cli ... ok [INFO] [stdout] test config::tests::token_pricing_in_crowded_toml_is_rejected ... ok [INFO] [stdout] test config::tests::token_pricing_file_is_optional_and_model_keyed ... ok [INFO] [stdout] test checker::tests::check_rejects_unsupported_raw_guest_with_shared_mcp_like_launch ... ok [INFO] [stdout] test checker::tests::check_accepts_valid_config ... ok [INFO] [stdout] test config::tests::toml_rooms_support_names_arguments_and_optional_cwd ... ok [INFO] [stdout] test config::tests::persist_room_fields_out_of_range_room_leaves_file_unchanged ... ok [INFO] [stdout] test checker::tests::check_reports_missing_config ... ok [INFO] [stdout] test doorbell::commands::tests::applying_hooked_events_builds_the_room_detail ... ok [INFO] [stdout] test doorbell::commands::tests::hook_payload_detail_ignores_unrelated_and_malformed_payloads ... ok [INFO] [stdout] test doorbell::commands::tests::hook_payload_detail_extracts_sub_agent_and_todo_events ... ok [INFO] [stdout] test config::tests::persist_room_fields_only_touches_the_indexed_room ... ok [INFO] [stdout] test doorbell::commands::tests::hook_payload_model_degrades_when_the_payload_carries_no_usable_model ... ok [INFO] [stdout] test doorbell::commands::tests::hook_payload_model_and_detail_read_the_same_payload ... ok [INFO] [stdout] test checker::tests::check_still_accepts_unsupported_raw_guest_without_shared_mcp ... ok [INFO] [stdout] test checker::tests::check_reports_semantically_invalid_config ... ok [INFO] [stdout] test doorbell::client_unix::tests::sends_json_line_and_reads_response ... ok [INFO] [stdout] test command::tests::windows_resolves_executables_and_batch_shims_from_path ... ok [INFO] [stdout] test doorbell::commands::tests::hook_payload_model_extracts_the_active_model_when_present ... ok [INFO] [stdout] test doorbell::commands::tests::hook_payload_model_rejects_a_model_that_would_fail_server_validation ... ok [INFO] [stdout] test config::tests::persist_fuse_size_round_trip_preserves_other_sections ... ok [INFO] [stdout] test command::tests::headroom_detection_finds_and_misses_the_binary_on_path ... ok [INFO] [stdout] test doorbell::protocol::tests::accepts_large_agent_message ... ok [INFO] [stdout] test checker::tests::check_reports_malformed_config ... ok [INFO] [stdout] test doorbell::protocol::tests::effort_labels_cover_the_doorbell_catalogue ... ok [INFO] [stdout] test doorbell::protocol::tests::pulse_validation_accepts_hook_detail_and_rejects_oversized_fields ... ok [INFO] [stdout] test config::tests::persist_room_fields_round_trip_preserves_other_sections ... ok [INFO] [stdout] test doorbell::protocol::tests::roster_capabilities_parse_older_wire_shapes_with_defaults ... ok [INFO] [stdout] test doorbell::protocol::tests::roster_scheduling_serializes_separately_from_capabilities ... ok [INFO] [stdout] test doorbell::protocol::tests::roster_capabilities_serialize_backward_compatible_fields ... ok [INFO] [stdout] test doorbell::server::tests::capability_tokens_are_random_and_socket_is_private ... ok [INFO] [stdout] test doorbell::server::tests::control_arguments_are_structured_and_validated ... ok [INFO] [stdout] test doorbell::server::tests::request_validation_binds_identity_and_limits_hops ... ok [INFO] [stdout] test doorbell::server::tests::request_validation_rejects_control_characters_in_hats ... ok [INFO] [stdout] test doorbell::server::tests::pulse_validation_binds_room_identity ... ok [INFO] [stdout] test doorbell::server::tests::send_arguments_support_temporary_task_roles_and_plain_messages ... ok [INFO] [stdout] test mcp_cli::commands::tests::add_accepts_unknown_flag_as_arg_after_args_marker ... ok [INFO] [stdout] test mailroom::tests::mailroom_keeps_a_bounded_honest_history ... ok [INFO] [stdout] test mcp_cli::commands::tests::add_missing_name_returns_usage_error ... ok [INFO] [stdout] test mcp_cli::commands::tests::add_parses_remote_url ... ok [INFO] [stdout] test mcp_cli::commands::tests::add_rejects_unknown_client ... ok [INFO] [stdout] test mcp_cli::commands::tests::add_rejects_unknown_transport ... ok [INFO] [stdout] test mcp_cli::commands::tests::format_entry_renders_command_transport_and_clients ... ok [INFO] [stdout] test mcp_cli::commands::tests::add_parses_local_command_with_args ... ok [INFO] [stdout] test mcp_cli::commands::tests::add_rejects_duplicate_args ... ok [INFO] [stdout] test mcp_cli::commands::tests::list_rejects_extra_arguments ... ok [INFO] [stdout] test mcp_cli::commands::tests::remove_missing_name_returns_usage_error ... ok [INFO] [stdout] test mcp_cli::commands::tests::remove_parses_name_and_rejects_extras ... ok [INFO] [stdout] test mcp_cli::commands::tests::add_rejects_duplicate_flag ... ok [INFO] [stdout] test mcp_cli::commands::tests::add_rejects_missing_command_and_url ... ok [INFO] [stdout] test mcp_cli::commands::tests::format_entry_renders_url_transport_and_all_clients ... ok [INFO] [stdout] test mcp_cli::commands::tests::add_rejects_missing_name ... ok [INFO] [stdout] test mcp_cli::commands::tests::add_rejects_duplicate_args_with_value_between ... ok [INFO] [stdout] test mcp_cli::commands::tests::unknown_action_returns_usage_error ... ok [INFO] [stdout] test mcp_cli::tests::add_entry_rejects_duplicate_name ... ok [INFO] [stdout] test mcp_cli::tests::add_entry_rejects_invalid_name ... ok [INFO] [stdout] test mcp_cli::tests::remove_entry_errors_on_unknown_name ... ok [INFO] [stdout] test mcp_cli::tests::remove_entry_errors_when_no_mcp_section ... ok [INFO] [stdout] test mcp_cli::tests::list_entries_returns_empty_when_no_mcp_section ... ok [INFO] [stdout] test mcp_cli::tests::list_entries_reads_all_mcp_servers ... ok [INFO] [stdout] test mcp_cli::tests::add_entry_appends_and_preserves_existing ... ok [INFO] [stdout] test mcp_cli::tests::remove_entry_deletes_named_entry ... ok [INFO] [stdout] test mcp_cli::tests::remove_entry_preserves_other_entries ... ok [INFO] [stdout] test mcp_cli::tests::add_entry_with_remote_transport ... ok [INFO] [stdout] test mcp_cli::tests::remove_entry_preserves_comments ... ok [INFO] [stdout] test doorbell::server::tests::roster_is_authenticated_and_machine_readable ... ok [INFO] [stdout] test mcp_cli::tests::add_entry_preserves_comments ... ok [INFO] [stdout] test doorbell::server::tests::control_crosses_the_authenticated_doorbell ... ok [INFO] [stdout] test mcp_cli::tests::add_entry_then_remove_in_same_session_succeeds ... ok [INFO] [stdout] test pane::controls::tests::capabilities_derive_from_the_adapter_without_claiming_opencode_effort ... ok [INFO] [stdout] test pane::controls::tests::claude_and_codex_use_bracketed_paste ... ok [INFO] [stdout] test pane::controls::tests::claude_project_directory_also_sanitizes_dots_in_a_windows_username ... ok [INFO] [stdout] test pane::controls::tests::claude_project_directory_matches_claude_cli_on_astral_characters ... ok [INFO] [stdout] test pane::controls::tests::claude_project_directory_replaces_every_separator_with_a_hyphen ... ok [INFO] [stdout] test mcp_cli::tests::two_add_entries_in_same_session_succeeds ... ok [INFO] [stdout] test pane::controls::tests::codex_session_meta_id_falls_back_to_session_id_when_id_is_absent ... ok [INFO] [stdout] test pane::controls::tests::codex_session_meta_id_prefers_id_over_session_id_when_both_present ... ok [INFO] [stdout] test initializer::tests::init_creates_then_applies_config_once ... ok [INFO] [stdout] test pane::controls::tests::claude_session_id_finds_newest_transcript_after_since ... ok [INFO] [stdout] test pane::controls::tests::current_model_effort_roundtrips_set_for_claude_and_codex ... ok [INFO] [stdout] test pane::controls::tests::codex_session_meta_id_rejects_wrong_cwd_and_wrong_record_type ... ok [INFO] [stdout] test pane::controls::tests::codex_session_id_matches_cwd_and_ignores_older_or_foreign_files ... ok [INFO] [stdout] test pane::controls::tests::normalize_opencode_model_splits_provider_and_id ... ok [INFO] [stdout] test pane::controls::tests::a_modelless_claim_is_reserved_against_a_checkable_sibling ... ok [INFO] [stdout] test pane::controls::tests::opencode_session_query_escapes_single_quotes ... ok [INFO] [stdout] test pane::controls::tests::opencode_session_query_excludes_already_claimed_ids ... ok [INFO] [stdout] test pane::controls::tests::opencode_session_query_filters_by_model ... ok [INFO] [stdout] test pane::controls::tests::opencode_session_query_filters_by_since_millis ... ok [INFO] [stdout] test pane::controls::tests::add_resume_args_prefers_a_captured_exact_session_id ... ok [INFO] [stdout] test pane::controls::tests::opencode_session_id_filters_by_model_and_handles_74ms_gap ... ok [INFO] [stdout] test pane::controls::tests::opencode_session_id_reads_a_real_sqlite_database_when_available ... ok [INFO] [stdout] test app::tests::background_collection_does_not_block_main_thread ... ok [INFO] [stdout] test pane::session_state::tests::capture_cell_reads_back_without_touching_disk ... ok [INFO] [stdout] test doorbell::server::tests::partial_write_request_survives_the_read_boundary ... ok [INFO] [stdout] test pane::session_state::tests::capture_async_claims_a_codex_artifact_that_lands_on_disk_past_the_old_three_second_bound ... ok [INFO] [stdout] test pane::session_state::tests::claude_cost_uses_configured_model_rates_or_reports_unknown ... ok [INFO] [stdout] test pane::controls::tests::a_room_without_a_mapping_is_not_refused ... ok [INFO] [stdout] test pane::controls::tests::add_resume_args_prefers_fresh_capture_over_clear_marker ... ok [INFO] [stdout] test pane::controls::tests::add_resume_args_sets_the_vendor_continue_flag ... ok [INFO] [stdout] test pane::session_state::tests::codex_cost_uses_only_the_last_cumulative_usage_event ... ok [INFO] [stdout] test pane::controls::tests::add_resume_args_starts_fresh_after_clear_marker ... ok [INFO] [stdout] test pane::controls::tests::a_surviving_model_mismatch_starts_fresh_instead_of_continuing ... ok [INFO] [stdout] test pane::controls::tests::an_isolated_resume_rejects_a_claim_on_another_model ... ok [INFO] [stdout] test pane::session_state::tests::opencode_capture_grace_covers_the_measured_first_message_delay ... ok [INFO] [stdout] test pane::session_state::tests::opencode_cost_reads_its_stored_dollar_value ... ok [INFO] [stdout] test pane::session_state::tests::production_root_is_the_current_directory ... ok [INFO] [stdout] test pane::controls::tests::crossed_opencode_mapping_is_self_healed_on_resume ... ok [INFO] [stdout] test pane::controls::tests::duplicate_claims_on_one_session_do_not_both_resume_it ... ok [INFO] [stdout] test pane::session_state::tests::two_rooms_sharing_vendor_and_cwd_do_not_collide ... ok [INFO] [stdout] test pane::session_state::tests::upsert_collapses_pre_existing_duplicate_entries_for_the_same_room_to_one ... ok [INFO] [stdout] test pane::session_state::tests::upsert_merges_by_vendor_cwd_and_room_and_lookup_roundtrips ... ok [INFO] [stdout] test pane::session_state::tests::upsert_supersedes_a_stale_entry_when_the_same_numeric_room_changes_vendor ... ok [INFO] [stdout] test pane::tests::alternate_screen_page_keys_forward_exact_bytes ... ok [INFO] [stdout] test pane::tests::alternate_screen_wheel_forwards_as_page_navigation ... ok [INFO] [stdout] test pane::tests::an_inline_tui_scrolling_inside_a_region_builds_scrollback ... ok [INFO] [stdout] test pane::tests::conductor_rewrites_native_launch_options ... ok [INFO] [stdout] test pane::tests::cursor_position_query_is_answered_across_output_chunks ... ok [INFO] [stdout] test pane::tests::opencode_is_ready_only_at_its_idle_normal_prompt ... ok [INFO] [stdout] test pane::tests::opencode_narrow_31_cols_ask_truncated_still_reports_ready ... ok [INFO] [stdout] test pane::tests::opencode_ready_marker_wrapped_across_lines_by_a_narrow_pane_still_reports_ready ... ok [INFO] [stdout] test pane::tests::opencode_resumed_history_with_esc_interrupt_still_reports_ready ... ok [INFO] [stdout] test pane::tests::page_keys_are_not_forwarded_to_the_child_pty ... ok [INFO] [stdout] test pane::tests::primary_screen_wheel_and_page_still_scroll_parent ... ok [INFO] [stdout] test pane::controls::tests::a_refused_duplicate_with_no_replacement_starts_fresh ... ok [INFO] [stdout] test pane::tests::rooms_without_cwd_use_crowdeds_launch_directory ... ok [INFO] [stdout] test pane::tests::scroll_applies_only_during_a_frame_and_restores_after ... ok [INFO] [stdout] test pane::tests::scroll_is_parsed_only_by_the_view_never_by_readiness ... ok [INFO] [stdout] test pane::tests::scroll_retains_history_and_clamps_at_both_limits ... ok [INFO] [stdout] test pane::tests::shift_tab_uses_the_terminal_backtab_sequence ... ok [INFO] [stdout] test pane::tests::spawn_launch_falls_back_unchanged_when_headroom_is_missing ... ok [INFO] [stdout] test pane::tests::spawn_launch_wraps_through_headroom_only_when_flag_and_binary_agree ... ok [INFO] [stdout] test pane::tests::whisper_quotes_shell_metacharacters ... ok [INFO] [stdout] test pane::controls::tests::repair_does_not_take_a_session_a_sibling_already_holds ... ok [INFO] [stdout] test plugins::adapters::tests::codex_hooks_get_powershell_commands ... ok [INFO] [stdout] test pane::controls::tests::unverifiable_model_metadata_does_not_resume_the_claim ... ok [INFO] [stdout] test room_detail::tests::apply_detail_events_accumulates_sub_agents_and_todos ... ok [INFO] [stdout] test room_detail::tests::codex_detail_correlates_child_rollouts_and_reads_the_newest_plan ... ok [INFO] [stdout] test room_detail::tests::detail_event_round_trips_through_serde ... ok [INFO] [stdout] test room_detail::tests::opencode_detail_reads_task_parts_and_todo_rows ... ok [INFO] [stdout] test tests::help_text_lists_all_subcommands ... ok [INFO] [stdout] test toolbox::tests::codex_native_config_serializes_streamable_http_url ... ok [INFO] [stdout] test toolbox::tests::native_files_merge_and_restore_without_losing_existing_config ... ok [INFO] [stdout] test toolbox::tests::native_toolbox_can_sync_hooks_without_mcps ... ok [INFO] [stdout] test toolbox::tests::removal_refuses_to_overwrite_a_changed_generated_file ... ok [INFO] [stdout] test toolbox::tests::resync_refreshes_managed_files_without_removing ... ok [INFO] [stdout] test pane::tests::whisper_submit_is_a_distinct_write_after_the_paste_end_marker ... ok [INFO] [stdout] test toolbox::tests::stale_resync_preserves_original_and_remove_still_cleans ... ok [INFO] [stdout] test toolbox::tests::tool_name_events_route_through_pretooluse_matchers ... ok [INFO] [stdout] test toolbox::tests::stale_resync_restores_orphaned_files_when_room_removed ... ok [INFO] [stdout] test plugins::tests::local_plugin_is_shared_and_removed_without_touching_other_files ... ok [INFO] [stdout] test pane::session_state::tests::capture_async_claims_an_artifact_created_before_the_intro_but_after_spawn ... ok [INFO] [stdout] test pane::session_state::tests::capture_once_does_not_claim_a_sibling_rooms_id ... ok [INFO] [stdout] test pane::session_state::tests::capture_once_skips_an_already_claimed_id_and_polls_for_a_fresh_one ... ok [INFO] [stdout] test pane::session_state::tests::clear_room_preserves_sibling_room_entries ... ok [INFO] [stdout] test pane::session_state::tests::clear_room_records_marker_even_when_no_prior_entry_exists ... ok [INFO] [stdout] test pane::session_state::tests::clear_room_replaces_stale_id_with_fresh_marker_and_capture_supersedes_it ... ok [INFO] [stdout] test pane::session_state::tests::initial_capture_cell_seeds_a_valid_persisted_id_but_not_a_fresh_or_cleared_room ... ok [INFO] [stdout] test pane::session_state::tests::concurrent_capture_once_at_most_one_thread_claims_same_id ... ok [INFO] [stdout] test pane::session_state::tests::missing_or_mismatched_state_resolves_to_none ... ok [INFO] [stdout] test pane::session_state::tests::record_capture_sets_the_shared_cell_and_persists_together ... ok [INFO] [stdout] test pane::session_state::tests::save_and_load_roundtrip_through_a_temp_root ... ok [INFO] [stdout] test pane::tests::resume_supported_specs_skips_guests_without_a_conductor_adapter ... ok [INFO] [stdout] test doorbell::server::tests::request_read_deadline_rejects_a_stalled_connection ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 222 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.15s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "e3c09d67a65b46c8713fb0fe1d57d219ed52305f5c5ab5e086e474e31a6a2f0f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e3c09d67a65b46c8713fb0fe1d57d219ed52305f5c5ab5e086e474e31a6a2f0f", kill_on_drop: false }` [INFO] [stdout] e3c09d67a65b46c8713fb0fe1d57d219ed52305f5c5ab5e086e474e31a6a2f0f