[INFO] fetching crate room-plugin-agent 3.6.0...
[INFO] testing room-plugin-agent-3.6.0 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate room-plugin-agent 3.6.0 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate room-plugin-agent 3.6.0
[INFO] finished tweaking crates.io crate room-plugin-agent 3.6.0
[INFO] tweaked toml for crates.io crate room-plugin-agent 3.6.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate room-plugin-agent 3.6.0 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate room-plugin-agent 3.6.0 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 968e0b42dd437c8cf883262481c45efead4a12396a60481a11f4c53d69ea5392
[INFO] running `Command { std: "docker" "start" "-a" "968e0b42dd437c8cf883262481c45efead4a12396a60481a11f4c53d69ea5392", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "968e0b42dd437c8cf883262481c45efead4a12396a60481a11f4c53d69ea5392", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "968e0b42dd437c8cf883262481c45efead4a12396a60481a11f4c53d69ea5392", kill_on_drop: false }`
[INFO] [stdout] 968e0b42dd437c8cf883262481c45efead4a12396a60481a11f4c53d69ea5392
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 33a668e6e706a1ad9982079bf2d30a802bd1fe4c3b7570b1368a08266aad7fac
[INFO] running `Command { std: "docker" "start" "-a" "33a668e6e706a1ad9982079bf2d30a802bd1fe4c3b7570b1368a08266aad7fac", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[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 chrono v0.4.44
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling room-protocol v3.5.1
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling room-plugin-agent v3.6.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.17s
[INFO] running `Command { std: "docker" "inspect" "33a668e6e706a1ad9982079bf2d30a802bd1fe4c3b7570b1368a08266aad7fac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "33a668e6e706a1ad9982079bf2d30a802bd1fe4c3b7570b1368a08266aad7fac", kill_on_drop: false }`
[INFO] [stdout] 33a668e6e706a1ad9982079bf2d30a802bd1fe4c3b7570b1368a08266aad7fac
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1060e42d86064cf3ff2de2ecafc1c1ba2d6cd0621424ff39f4badbcbd33814b6
[INFO] running `Command { std: "docker" "start" "-a" "1060e42d86064cf3ff2de2ecafc1c1ba2d6cd0621424ff39f4badbcbd33814b6", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[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 chrono v0.4.44
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling room-protocol v3.5.1
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling room-plugin-agent v3.6.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 25.15s
[INFO] running `Command { std: "docker" "inspect" "1060e42d86064cf3ff2de2ecafc1c1ba2d6cd0621424ff39f4badbcbd33814b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1060e42d86064cf3ff2de2ecafc1c1ba2d6cd0621424ff39f4badbcbd33814b6", kill_on_drop: false }`
[INFO] [stdout] 1060e42d86064cf3ff2de2ecafc1c1ba2d6cd0621424ff39f4badbcbd33814b6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] b869c2c8c90a184e6b47db2d5e48f6e5e7ab4f8bf70696202b806579a2ca14b4
[INFO] running `Command { std: "docker" "start" "-a" "b869c2c8c90a184e6b47db2d5e48f6e5e7ab4f8bf70696202b806579a2ca14b4", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/room_plugin_agent-cdbf8690087a821a)
[INFO] [stdout] 
[INFO] [stdout] running 102 tests
[INFO] [stdout] test personalities::tests::all_personalities_includes_builtins ... ok
[INFO] [stdout] test personalities::tests::all_personality_names_includes_builtins ... ok
[INFO] [stdout] test personalities::tests::all_personality_names_uses_all_personalities ... ok
[INFO] [stdout] test personalities::tests::builtin_coder_has_opus_model ... ok
[INFO] [stdout] test personalities::tests::builtin_personalities_has_all_five ... ok
[INFO] [stdout] test personalities::tests::builtin_reviewer_disallows_write_edit ... ok
[INFO] [stdout] test personalities::tests::builtin_scout_disallows_write_edit_bash ... ok
[INFO] [stdout] test personalities::tests::generate_username_empty_pool_uses_uuid ... ok
[INFO] [stdout] test personalities::tests::generate_username_fallback_to_uuid_when_pool_exhausted ... ok
[INFO] [stdout] test personalities::tests::generate_username_from_name_pool ... ok
[INFO] [stdout] test personalities::tests::generate_username_skips_used_names ... ok
[INFO] [stdout] test personalities::tests::load_personality_toml_io_error ... ok
[INFO] [stdout] test personalities::tests::merge_allow_all_requires_both ... ok
[INFO] [stdout] test personalities::tests::merge_empty_name_pool_inherits_base ... ok
[INFO] [stdout] test personalities::tests::merge_deny_lists_unioned ... ok
[INFO] [stdout] test personalities::tests::merge_empty_prompt_inherits_base ... ok
[INFO] [stdout] test personalities::tests::merge_user_allow_overrides_base ... ok
[INFO] [stdout] test personalities::tests::merge_user_cannot_remove_base_deny ... ok
[INFO] [stdout] test personalities::tests::load_personality_toml_missing_required_field ... ok
[INFO] [stdout] test personalities::tests::load_personality_toml_parse_error ... ok
[INFO] [stdout] test personalities::tests::all_personality_names_sorted ... ok
[INFO] [stdout] test personalities::tests::load_personality_toml_validation_error ... ok
[INFO] [stdout] test personalities::tests::scan_dir_collects_errors_for_invalid_files ... ok
[INFO] [stdout] test personalities::tests::scan_dir_loads_valid_files ... ok
[INFO] [stdout] test personalities::tests::resolve_personality_user_toml_overrides_builtin ... ok
[INFO] [stdout] test personalities::tests::toml_deserialization_minimal ... ok
[INFO] [stdout] test personalities::tests::merge_user_overrides_scalar_fields ... ok
[INFO] [stdout] test personalities::tests::resolve_personality_returns_none_for_unknown ... ok
[INFO] [stdout] test personalities::tests::toml_deserialization_allow_all ... ok
[INFO] [stdout] test personalities::tests::validate_builtin_personalities_all_pass ... ok
[INFO] [stdout] test personalities::tests::validate_empty_name_pool_entry_rejected ... ok
[INFO] [stdout] test personalities::tests::validate_empty_name_rejected ... ok
[INFO] [stdout] test personalities::tests::validate_multiple_errors_collected ... ok
[INFO] [stdout] test personalities::tests::validate_name_pool_invalid_chars_rejected ... ok
[INFO] [stdout] test personalities::tests::validate_unknown_model_rejected ... ok
[INFO] [stdout] test personalities::tests::validate_valid_personality_passes ... ok
[INFO] [stdout] test tests::abi_create_with_empty_config ... ok
[INFO] [stdout] test tests::abi_create_with_json_config ... ok
[INFO] [stdout] test tests::abi_declaration_matches_plugin ... ok
[INFO] [stdout] test tests::abi_destroy_null_is_safe ... ok
[INFO] [stdout] test tests::abi_destroy_frees_plugin ... ok
[INFO] [stdout] test tests::compute_health_exited_with_code ... ok
[INFO] [stdout] test tests::default_commands_includes_spawn ... ok
[INFO] [stdout] test personalities::tests::personality_error_display_io ... ok
[INFO] [stdout] test personalities::tests::personality_error_display_validation ... ok
[INFO] [stdout] test tests::handle_list_includes_health_column ... ok
[INFO] [stdout] test personalities::tests::resolve_personality_returns_builtin ... ok
[INFO] [stdout] test tests::compute_health_exited_process ... ok
[INFO] [stdout] test tests::health_status_display_exited_code ... ok
[INFO] [stdout] test tests::health_status_display_exited_signal ... ok
[INFO] [stdout] test tests::health_healthy_when_recently_seen ... ok
[INFO] [stdout] test tests::health_stale_when_last_seen_exceeds_threshold ... ok
[INFO] [stdout] test personalities::tests::scan_empty_dir_returns_nothing ... ok
[INFO] [stdout] test tests::health_status_display_healthy ... ok
[INFO] [stdout] test tests::health_status_equality ... ok
[INFO] [stdout] test tests::health_status_display_stale ... ok
[INFO] [stdout] test tests::list_header_includes_personality_column ... ok
[INFO] [stdout] test tests::list_data_contains_agents_array ... ok
[INFO] [stdout] test tests::list_empty ... ok
[INFO] [stdout] test tests::list_shows_exited_unknown_for_dead_process_without_child ... ok
[INFO] [stdout] test tests::list_shows_dash_for_empty_personality ... ok
[INFO] [stdout] test tests::list_shows_running_for_alive_process ... ok
[INFO] [stdout] test tests::list_sorts_by_spawn_time ... ok
[INFO] [stdout] test tests::list_empty_data_has_empty_agents ... ok
[INFO] [stdout] test tests::list_shows_exit_code_when_recorded ... ok
[INFO] [stdout] test tests::list_with_personality_and_exit_code_full_row ... ok
[INFO] [stdout] test tests::list_with_agents ... ok
[INFO] [stdout] test tests::health_healthy_when_never_seen_but_alive ... ok
[INFO] [stdout] test tests::logs_custom_tail ... ok
[INFO] [stdout] test tests::logs_invalid_tail_value ... ok
[INFO] [stdout] test tests::logs_default_tail ... ok
[INFO] [stdout] test tests::logs_missing_username ... ok
[INFO] [stdout] test tests::logs_empty_file ... ok
[INFO] [stdout] test tests::logs_missing_log_file ... ok
[INFO] [stdout] test tests::on_message_updates_last_seen ... ok
[INFO] [stdout] test tests::logs_tail_larger_than_file ... ok
[INFO] [stdout] test tests::logs_unknown_agent ... ok
[INFO] [stdout] test tests::persist_and_load_roundtrip ... ok
[INFO] [stdout] test tests::logs_zero_tail_rejected ... ok
[INFO] [stdout] test tests::spawn_command_has_personality_choice_param ... ok
[INFO] [stdout] test personalities::tests::validate_empty_description_rejected ... ok
[INFO] [stdout] test tests::spawn_invalid_username ... ok
[INFO] [stdout] test tests::persist_roundtrip_with_personality ... ok
[INFO] [stdout] test tests::list_shows_signal_when_no_exit_code ... ok
[INFO] [stdout] test tests::spawn_personality_auto_name_skips_used ... ok
[INFO] [stdout] test tests::on_message_ignores_untracked_users ... ok
[INFO] [stdout] test tests::spawn_personality_missing_returns_usage ... ok
[INFO] [stdout] test tests::spawn_personality_collision_with_online_user ... ok
[INFO] [stdout] test tests::spawn_missing_username ... ok
[INFO] [stdout] test tests::spawn_personality_unknown_returns_error ... ok
[INFO] [stdout] test tests::spawn_username_collision_with_online_user ... ok
[INFO] [stdout] test tests::stale_threshold_default_is_five_minutes ... ok
[INFO] [stdout] test tests::prune_dead_agents_on_load ... ok
[INFO] [stdout] test personalities::tests::toml_deserialization_roundtrip ... ok
[INFO] [stdout] test tests::stop_unknown_agent ... ok
[INFO] [stdout] test tests::stop_data_includes_action_and_username ... ok
[INFO] [stdout] test tests::stop_missing_username ... ok
[INFO] [stdout] test tests::spawn_username_collision_with_running_agent ... ok
[INFO] [stdout] test tests::stop_already_exited_agent ... ok
[INFO] [stdout] test tests::stop_non_host_denied ... ok
[INFO] [stdout] test tests::stop_host_can_stop_agent ... ok
[INFO] [stderr]    Doc-tests room_plugin_agent
[INFO] [stdout] test tests::unknown_action_returns_usage ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 102 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[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] running `Command { std: "docker" "inspect" "b869c2c8c90a184e6b47db2d5e48f6e5e7ab4f8bf70696202b806579a2ca14b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b869c2c8c90a184e6b47db2d5e48f6e5e7ab4f8bf70696202b806579a2ca14b4", kill_on_drop: false }`
[INFO] [stdout] b869c2c8c90a184e6b47db2d5e48f6e5e7ab4f8bf70696202b806579a2ca14b4
