[INFO] cloning repository https://github.com/jleechanorg/ez-gh-actions
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jleechanorg/ez-gh-actions" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjleechanorg%2Fez-gh-actions", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjleechanorg%2Fez-gh-actions'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5bd5ade4ddc6a9ce18c7ce756a37d53407948c4a
[INFO] testing jleechanorg/ez-gh-actions against 1.98.0-beta.1 for beta-1.98-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjleechanorg%2Fez-gh-actions" "/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/jleechanorg/ez-gh-actions
[INFO] finished tweaking git repo https://github.com/jleechanorg/ez-gh-actions
[INFO] tweaked toml for git repo https://github.com/jleechanorg/ez-gh-actions written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jleechanorg/ez-gh-actions on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jleechanorg/ez-gh-actions 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.98.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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 670045def8dba2bd56586e48e9561c3994f0538a88073b24c531d31cb565df84
[INFO] running `Command { std: "docker" "start" "670045def8dba2bd56586e48e9561c3994f0538a88073b24c531d31cb565df84", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "670045def8dba2bd56586e48e9561c3994f0538a88073b24c531d31cb565df84", 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" "670045def8dba2bd56586e48e9561c3994f0538a88073b24c531d31cb565df84" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "670045def8dba2bd56586e48e9561c3994f0538a88073b24c531d31cb565df84", 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" "670045def8dba2bd56586e48e9561c3994f0538a88073b24c531d31cb565df84" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "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 serde v1.0.228
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anyhow v1.0.103
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling env_home v0.1.0
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling memchr v2.8.2
[INFO] [stderr]    Compiling ez-gh-actions v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling sd-notify v0.4.5
[INFO] [stderr]    Compiling directories v5.0.1
[INFO] [stderr]    Compiling which v7.0.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.33s
[INFO] running `Command { std: "docker" "inspect" "670045def8dba2bd56586e48e9561c3994f0538a88073b24c531d31cb565df84", 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" "670045def8dba2bd56586e48e9561c3994f0538a88073b24c531d31cb565df84" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling ez-gh-actions v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 6.42s
[INFO] running `Command { std: "docker" "inspect" "670045def8dba2bd56586e48e9561c3994f0538a88073b24c531d31cb565df84", 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" "670045def8dba2bd56586e48e9561c3994f0538a88073b24c531d31cb565df84" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ezgha-c8a8580538a01633)
[INFO] [stdout] 
[INFO] [stdout] running 276 tests
[INFO] [stdout] test alert::tests::alert_is_noop_without_channels ... ok
[INFO] [stdout] test alert::tests::deadman_disabled_when_threshold_is_zero ... ok
[INFO] [stdout] test alert::tests::email_message_subject_includes_severity_not_subject_twice ... ok
[INFO] [stdout] test alert::tests::payload_includes_context_for_slack ... ok
[INFO] [stdout] test alert::tests::slack_curl_args_include_hard_timeouts ... ok
[INFO] [stdout] test alert::tests::slack_dry_run_message_does_not_include_webhook_url ... ok
[INFO] [stdout] test backend::tests::bare_metal_daemon_refused_under_vm_policy ... ok
[INFO] [stdout] test backend::tests::linux_kvm_prefers_libvirt_in_candidates ... ok
[INFO] [stdout] test backend::tests::docker_in_vm_daemon_satisfies_vm_policy ... ok
[INFO] [stdout] test backend::tests::select_fails_closed_when_policy_requires_vm ... ok
[INFO] [stdout] test backend::tests::no_backend_when_nothing_usable ... ok
[INFO] [stdout] test backend::tests::macos_prefers_tart_in_candidates ... ok
[INFO] [stdout] test backend::tests::select_skips_unimplemented_vm_and_warns ... ok
[INFO] [stdout] test backend::tests::sysbox_outranks_plain_docker ... ok
[INFO] [stdout] test canary::tests::correlates_run_to_prefix_matching_job ... ok
[INFO] [stdout] test canary::tests::daemon_scheduler_waits_initial_interval_after_startup ... ok
[INFO] [stdout] test canary::tests::finds_workflow_run_by_nonce_in_display_title ... ok
[INFO] [stdout] test canary::tests::daemon_scheduler_disabled_does_not_dispatch ... ok
[INFO] [stdout] test canary::tests::result_computes_slo_and_completion_times ... ok
[INFO] [stdout] test canary::tests::result_does_not_accept_wrong_runner_prefix_from_fallback_job ... ok
[INFO] [stdout] test canary::tests::daemon_scheduler_starts_when_interval_is_due ... ok
[INFO] [stdout] test canary::tests::result_preserves_queued_job_before_runner_assignment ... ok
[INFO] [stdout] test config::tests::defaults_are_bounded ... ok
[INFO] [stdout] test canary::tests::history_writes_jsonl ... ok
[INFO] [stdout] test config::tests::isolation_ordering_fail_closed ... ok
[INFO] [stdout] test alert::tests::cooldown_blocks_repeated_events ... ok
[INFO] [stdout] test config::tests::canary_requires_repo_for_org_scope_when_enabled ... ok
[INFO] [stdout] test config::tests::load_rejects_unknown_field ... ok
[INFO] [stdout] test config::tests::load_legacy_config_without_queue_monitor_defaults_disabled ... ok
[INFO] [stdout] test config::tests::load_rejects_wrong_version_from_disk ... ok
[INFO] [stdout] test config::tests::example_configs_load_without_queue_monitor_block ... ok
[INFO] [stdout] test config::tests::config_roundtrip ... ok
[INFO] [stdout] test config::tests::queue_monitor_requires_repo_for_org_scope_when_enabled ... ok
[INFO] [stdout] test config::tests::reject_empty_target ... ok
[INFO] [stdout] test config::tests::reject_invalid_canary_values ... ok
[INFO] [stdout] test config::tests::org_scope_allows_bare_target ... ok
[INFO] [stdout] test config::tests::reject_memory_below_floor ... ok
[INFO] [stdout] test config::tests::reject_non_finite_cpus ... ok
[INFO] [stdout] test config::tests::load_rejects_zero_memory_from_disk ... ok
[INFO] [stdout] test config::tests::reject_subminimum_cpus ... ok
[INFO] [stdout] test config::tests::reject_repo_target_without_single_slash ... ok
[INFO] [stdout] test config::tests::reject_invalid_queue_monitor_values ... ok
[INFO] [stdout] test config::tests::reject_wrong_version ... ok
[INFO] [stdout] test config::tests::reject_zero_cpus ... ok
[INFO] [stdout] test config::tests::reject_zero_count ... ok
[INFO] [stdout] test config::tests::reject_zero_memory ... ok
[INFO] [stdout] test config::tests::reject_zero_runner_floor_mb ... ok
[INFO] [stdout] test config::tests::reject_zero_pids ... ok
[INFO] [stdout] test config::tests::serve_tick_defaults_to_30s_when_absent ... ok
[INFO] [stdout] test config::tests::serve_tick_honors_configured_value_and_clamps_floor ... ok
[INFO] [stdout] test config::tests::valid_config_passes_validation ... ok
[INFO] [stdout] test docker_backend::tests::cpu_controller_both_enabled_returns_true ... ok
[INFO] [stdout] test docker_backend::tests::cpu_controller_host_enabled_guest_disabled_returns_false ... ok
[INFO] [stdout] test docker_backend::tests::cpu_controller_neither_enabled_returns_false ... ok
[INFO] [stdout] test docker_backend::tests::cpu_controller_override_wins_over_ttl_cache ... ok
[INFO] [stdout] test docker_backend::tests::current_prefix_container_count_ignores_retired_prefixes ... ok
[INFO] [stdout] test docker_backend::tests::derive_memory_budget_fails_loud_when_floor_unmet ... ok
[INFO] [stdout] test docker_backend::tests::derive_memory_budget_happy_path_ground_truth ... ok
[INFO] [stdout] test docker_backend::tests::disk_measure_strike_counter_bails_after_threshold ... ok
[INFO] [stdout] test docker_backend::tests::disk_measure_strike_counter_resets_on_success ... ok
[INFO] [stdout] test docker_backend::tests::drain_defers_container_less_registration_when_deadline_elapsed ... ok
[INFO] [stdout] test docker_backend::tests::drain_defers_when_container_state_unknown ... ok
[INFO] [stdout] test docker_backend::tests::drain_leaves_container_backed_registration ... ok
[INFO] [stdout] test docker_backend::tests::drain_deregisters_container_less_registration ... ok
[INFO] [stdout] test docker_backend::tests::cpu_controller_host_disabled_guest_enabled_returns_true ... ok
[INFO] [stdout] test docker_backend::tests::current_prefix_containers_excludes_canary_prefix ... ok
[INFO] [stdout] test docker_backend::tests::drain_releases_empty_reservation ... ok
[INFO] [stdout] test docker_backend::tests::cpu_controller_override_overrides_cached_probe_result ... ok
[INFO] [stdout] test docker_backend::tests::effective_limits_aggregate_fits_daemon ... ok
[INFO] [stdout] test docker_backend::tests::effective_limits_clamps_per_runner_to_daemon_share ... ok
[INFO] [stdout] test docker_backend::tests::effective_limits_respects_guest_reserve_ground_truth ... ok
[INFO] [stdout] test docker_backend::tests::eval_admission_tests::admits_when_pressure_low_and_available_huge ... ok
[INFO] [stdout] test docker_backend::tests::eval_admission_tests::refuses_on_absolute_pressure_above_threshold ... ok
[INFO] [stdout] test docker_backend::tests::eval_admission_tests::refuses_when_available_below_two_x_runner_memory ... ok
[INFO] [stdout] test docker_backend::tests::eval_admission_tests::refuses_on_five_tick_rising_hysteresis_even_below_absolute_threshold ... ok
[INFO] [stdout] test docker_backend::tests::fewer_started_than_missing_is_a_partial_failure ... ok
[INFO] [stdout] test docker_backend::tests::integration_cpu_cgroup_caps_at_limit ... ignored, live docker required; run with EZGHA_RUN_INTEGRATION=1 cargo test -- --ignored
[INFO] [stdout] test docker_backend::tests::full_success_is_not_a_partial_failure ... ok
[INFO] [stdout] test docker_backend::tests::integration_cpu_cgroup_helper_finds_alpine ... ok
[INFO] [stdout] test docker_backend::tests::ensure_count_outcome_flags_fewer_than_half_started ... ok
[INFO] [stdout] test docker_backend::tests::is_runner_busy_lock_error_detects_422_job_lock ... ok
[INFO] [stdout] test docker_backend::tests::is_runner_busy_lock_error_does_not_false_positive_on_runner_id_containing_422 ... ok
[INFO] [stdout] test docker_backend::tests::is_runner_busy_lock_error_ignores_unrelated_errors ... ok
[INFO] [stdout] test docker_backend::tests::ensure_count_real_wiring_computes_missing_before_start_missing ... ok
[INFO] [stdout] test docker_backend::tests::ensure_count_respawn_within_grace_window_is_not_reaped_by_release_stale_slots ... ok
[INFO] [stdout] test docker_backend::tests::offline_busy_owned_missing_container_still_uses_qbl_path2 ... ok
[INFO] [stdout] test docker_backend::tests::next_slot_assigns_exhausted_after_count_reached ... ok
[INFO] [stdout] test docker_backend::tests::next_slot_assigns_first_slot_when_empty ... ok
[INFO] [stdout] test docker_backend::tests::next_slot_reuses_slot_after_release ... ok
[INFO] [stdout] test docker_backend::tests::offline_not_busy_owned_missing_container_registration_is_reapable ... ok
[INFO] [stdout] test docker_backend::tests::offline_not_busy_with_local_container_present_is_not_returned ... ok
[INFO] [stdout] test docker_backend::tests::offline_busy_runner_is_not_returned_by_u3w_helper ... ok
[INFO] [stdout] test docker_backend::tests::online_runner_is_not_returned_by_u3w_helper ... ok
[INFO] [stdout] test docker_backend::tests::parse_controller_probe_tests::v1_combined_cpu_cpuacct_disabled_false ... ok
[INFO] [stdout] test docker_backend::tests::parse_controller_probe_tests::v1_combined_cpu_cpuacct_enabled_true ... ok
[INFO] [stdout] test docker_backend::tests::parse_controller_probe_tests::v1_cpu_name_enabled_true ... ok
[INFO] [stdout] test docker_backend::tests::parse_controller_probe_tests::v1_cpu_comma_x_enabled_true ... ok
[INFO] [stdout] test docker_backend::tests::parse_controller_probe_tests::v1_cpu_name_disabled_false ... ok
[INFO] [stdout] test docker_backend::tests::offline_busy_owned_missing_container_slot_requires_runner_removal ... ok
[INFO] [stdout] test docker_backend::tests::parse_controller_probe_tests::v1_different_controller_returns_false ... ok
[INFO] [stdout] test docker_backend::tests::parse_docker_size_mb_handles_common_units ... ok
[INFO] [stdout] test docker_backend::tests::parse_mem_usage_mb_takes_used_side_of_slash ... ok
[INFO] [stdout] test docker_backend::tests::path4_u3w_helper_reaps_stale_registration_with_no_grace_window_entry ... ok
[INFO] [stdout] test docker_backend::tests::path4_u3w_helper_skips_fresh_registration_even_after_path1_released_its_slot_entry ... ok
[INFO] [stdout] test docker_backend::tests::parse_controller_probe_tests::v1_header_comment_is_ignored ... ok
[INFO] [stdout] test docker_backend::tests::preview_memory_budget_fail_matches_derive_memory_budget_fail_loud_path ... ok
[INFO] [stdout] test docker_backend::tests::preview_memory_budget_pass_matches_derive_memory_budget_happy_path ... ok
[INFO] [stdout] test docker_backend::tests::reclaim_zombie_locked_runner_cancels_then_deletes_on_success ... ok
[INFO] [stdout] test docker_backend::tests::reclaim_zombie_locked_runner_keeps_slot_when_job_never_leaves_in_progress ... ok
[INFO] [stdout] test docker_backend::tests::reclaim_zombie_locked_runner_returns_none_when_no_matching_job ... ok
[INFO] [stdout] test docker_backend::tests::online_busy_missing_container_is_not_reclaimable ... ok
[INFO] [stdout] test docker_backend::tests::read_slot_assignments_quarantines_corrupt_file_and_returns_empty ... ok
[INFO] [stdout] test docker_backend::tests::release_stale_slots_does_not_mutate_slot_file_on_list_runners_error ... ok
[INFO] [stdout] test docker_backend::tests::release_stale_slots_handles_empty_runner_id ... ok
[INFO] [stdout] test docker_backend::tests::release_stale_slots_keeps_slot_when_runner_id_in_live ... ok
[INFO] [stdout] test docker_backend::tests::release_stale_slots_keeps_slot_when_runner_id_not_in_live_but_container_exists ... ok
[INFO] [stdout] test docker_backend::tests::release_stale_slots_keeps_slot_when_runner_id_not_in_live_but_container_list_unavailable ... ok
[INFO] [stdout] test docker_backend::tests::release_stale_slots_reclaims_after_grace_window_elapses ... ok
[INFO] [stdout] test docker_backend::tests::run_docker_times_out ... ok
[INFO] [stdout] test docker_backend::tests::runner_config_missing_new_keys_falls_back_to_documented_defaults ... ok
[INFO] [stdout] test docker_backend::tests::runner_name_not_matching_our_prefix_is_not_returned ... ok
[INFO] [stdout] test docker_backend::tests::runner_name_uses_cfg_prefix_not_hardcoded_default ... ok
[INFO] [stdout] test docker_backend::tests::runner_name_uses_prefix_and_slot_format ... ok
[INFO] [stdout] test docker_backend::tests::release_stale_slots_releases_offline_runner_when_container_missing ... ok
[INFO] [stdout] test docker_backend::tests::release_stale_slots_releases_slot_when_runner_id_not_in_live ... ok
[INFO] [stdout] test docker_backend::tests::release_stale_slots_releases_slot_when_runner_name_mismatches ... ok
[INFO] [stdout] test docker_backend::tests::release_stale_slots_returns_zero_when_no_assignments ... ok
[INFO] [stdout] test alert::tests::deadman_failed_self_test_keeps_pipeline_dead ... ok
[INFO] [stdout] test alert::tests::deadman_does_not_fire_when_recent_alert_was_delivered ... ok
[INFO] [stdout] test docker_backend::tests::start_one_releases_slot_on_docker_run_failure ... ok
[INFO] [stdout] test alert::tests::deadman_fires_after_threshold_with_no_delivery ... ok
[INFO] [stdout] test alert::tests::deadman_no_channels_configured_is_noop ... ok
[INFO] [stdout] test alert::tests::deadman_successful_self_test_resets_pipeline_alive_timer ... ok
[INFO] [stdout] test github::tests::api_base_org_yields_orgs_target ... ok
[INFO] [stdout] test github::tests::api_base_repo_yields_repos_target ... ok
[INFO] [stdout] test github::tests::bad_credentials_detected_in_gh_stderr ... ok
[INFO] [stdout] test github::tests::bad_credentials_not_confused_with_permission_or_rate_limit ... ok
[INFO] [stdout] test github::tests::cross_host_live_runner_is_not_reclaimable ... ok
[INFO] [stdout] test github::tests::detect_rate_limit_output ... ok
[INFO] [stdout] test github::tests::detect_rate_limit_output_from_gh_exit_one ... ok
[INFO] [stdout] test github::tests::empty_slurp_yields_no_runners ... ok
[INFO] [stdout] test github::tests::generate_jitconfig_org_routes_to_orgs_path ... ok
[INFO] [stdout] test github::tests::gh_command_falls_back_to_ambient_auth_when_token_file_missing ... ok
[INFO] [stdout] test github::tests::gh_command_falls_back_to_ambient_auth_when_token_file_empty ... ok
[INFO] [stdout] test github::tests::gh_command_reads_installation_token_file_for_child_env ... ok
[INFO] [stdout] test github::tests::gh_auth_ok_parses_logged_in_line_regardless_of_exit_code ... ok
[INFO] [stdout] test docker_backend::tests::start_missing_runners_excludes_permanently_stuck_slot_within_one_call ... ok
[INFO] [stdout] test github::tests::non_rate_limit_response_is_not_retried ... ok
[INFO] [stdout] test docker_backend::tests::slot_assignments_start_at_one ... ok
[INFO] [stdout] test github::tests::owned_zombie_is_reclaimable_even_if_online_busy ... ok
[INFO] [stdout] test github::tests::path_snapshot_for_both_scopes ... ok
[INFO] [stdout] test github::tests::primary_and_secondary_classifiers_are_distinct ... ok
[INFO] [stdout] test github::tests::rate_limit_without_retry_after_uses_default_backoff ... ok
[INFO] [stdout] test docker_backend::tests::start_one_releases_slot_on_jit_generation_failure ... ok
[INFO] [stdout] test github::tests::list_runners_complete_snapshot_succeeds ... ok
[INFO] [stdout] test github::tests::remove_runner_until_bails_instead_of_sleeping_past_deadline ... ok
[INFO] [stdout] test github::tests::remove_runner_until_kills_hung_child_at_remaining_budget ... ok
[INFO] [stdout] test docker_backend::tests::state_dir_isolates_slot_assignments_between_configs ... ok
[INFO] [stdout] test github::tests::retry_after_parser_prefers_any_digit_token ... ok
[INFO] [stdout] test github::tests::list_runners_first_page_missing_total_count_succeeds ... ok
[INFO] [stdout] test github::tests::secondary_rate_limit_with_retry_after_honors_header_value ... ok
[INFO] [stdout] test github::tests::secondary_rate_limit_without_retry_after_uses_documented_floor ... ok
[INFO] [stdout] test github::tests::token_refresh_cooldown_gates_repeat_triggers ... ok
[INFO] [stdout] test github::tests::slurped_pages_flatten_into_one_runner_list ... ok
[INFO] [stdout] test github::tests::run_gh_with_backoff_until_bails_when_deadline_is_exhausted_instead_of_sleeping ... ok
[INFO] [stdout] test github::tests::transient_gh_json_parse_failure_retries_empty_stdout ... ok
[INFO] [stdout] test github::tests::transient_gh_json_parse_failure_uses_default_backoff ... ok
[INFO] [stdout] test github::tests::workflow_dispatch_includes_host_specific_runner_labels ... ok
[INFO] [stdout] test github::tests::workflow_jobs_fixture_deserializes ... ok
[INFO] [stdout] test github::tests::workflow_run_fixture_deserializes ... ok
[INFO] [stdout] test github::tests::verify_snapshot_complete_classifies_cases ... ok
[INFO] [stdout] test platform::tests::capture_kills_wedged_command_and_returns_none ... ok
[INFO] [stdout] test queue_monitor::tests::alert_invariant_violation_reports_both_invariants_when_both_fail ... ok
[INFO] [stdout] test queue_monitor::tests::append_invariant_sample_writes_exact_schema_fields ... ok
[INFO] [stdout] test queue_monitor::tests::bad_sample_counter_resets_after_clean_sample ... ok
[INFO] [stdout] test queue_monitor::tests::classify_inv1_failure_detects_offline_respawning_when_fully_registered ... ok
[INFO] [stdout] test queue_monitor::tests::classify_inv1_failure_falls_back_to_genuinely_idle ... ok
[INFO] [stdout] test queue_monitor::tests::classify_inv1_failure_prioritizes_missing_registration ... ok
[INFO] [stdout] test platform::tests::capture_reports_nonzero_exit ... ok
[INFO] [stdout] test queue_monitor::tests::enumerate_jobs_within_budget_bails_before_first_fetch_past_deadline ... ok
[INFO] [stdout] test queue_monitor::tests::enumerate_jobs_within_budget_completes_normally_when_deadline_is_far_off ... ok
[INFO] [stdout] test github::tests::remove_runner_until_succeeds_via_fake_gh ... ok
[INFO] [stdout] test platform::tests::capture_returns_output_for_fast_command ... ok
[INFO] [stdout] test queue_monitor::tests::fleet_stats_counts_exact_22_runner_pool_only ... ok
[INFO] [stdout] test queue_monitor::tests::invariant_history_path_honors_config_override ... ok
[INFO] [stdout] test queue_monitor::tests::invariant_inv1_false_when_fleet_short_one_and_queue_nonempty ... ok
[INFO] [stdout] test queue_monitor::tests::invariant_inv1_false_when_zero_queued_is_capped_not_confirmed_empty ... ok
[INFO] [stdout] test queue_monitor::tests::idle_runner_mismatch_alert_includes_runner_table_and_missing_names ... ok
[INFO] [stdout] test github::tests::list_runners_partial_snapshot_bails ... ok
[INFO] [stdout] test queue_monitor::tests::invariant_inv1_true_when_fleet_fully_busy_regardless_of_queue ... ok
[INFO] [stdout] test queue_monitor::tests::invariant_inv1_true_when_busy_full_even_if_queue_read_is_capped ... ok
[INFO] [stdout] test queue_monitor::tests::invariant_inv1_true_when_queue_is_empty_regardless_of_busy_count ... ok
[INFO] [stdout] test queue_monitor::tests::invariant_inv2_boundary_is_inclusive_of_exactly_20_minutes ... ok
[INFO] [stdout] test queue_monitor::tests::invariant_oldest_ages_combine_stale_and_fresh_across_repos_via_max ... ok
[INFO] [stdout] test queue_monitor::tests::invariant_queued_jobs_capped_flag_propagates_verbatim ... ok
[INFO] [stdout] test queue_monitor::tests::parses_github_timestamp ... ok
[INFO] [stdout] test queue_monitor::tests::queue_alert_uses_log_channel_after_consecutive_bad_samples ... ok
[INFO] [stdout] test queue_monitor::tests::queue_alert_waits_for_consecutive_bad_samples ... ok
[INFO] [stdout] test queue_monitor::tests::queue_stats_flags_fresh_tail_breach_and_ignores_stale_runs ... ok
[INFO] [stdout] test queue_monitor::tests::queue_stats_flags_long_in_progress_job_at_job_level ... ok
[INFO] [stdout] test queue_monitor::tests::queue_stats_handles_boundaries_and_ignored_timestamps ... ok
[INFO] [stdout] test queue_monitor::tests::fetch_capped_queue_snapshot_bails_within_budget_under_persistent_rate_limit ... ok
[INFO] [stdout] test queue_monitor::tests::queue_stats_passes_when_tail_is_within_threshold ... ok
[INFO] [stdout] test queue_monitor::tests::serve_loop_snapshots_skips_fetches_when_no_tick_is_due ... ok
[INFO] [stdout] test queue_monitor::tests::serve_loop_snapshots_fetches_only_for_due_ticks ... ok
[INFO] [stdout] test reaper::tests::executor_cancels_polls_then_deletes_after_job_leaves_in_progress ... ok
[INFO] [stdout] test reaper::tests::executor_force_cancels_after_poll_budget_then_deletes ... ok
[INFO] [stdout] test queue_monitor::tests::stale_queue_warning_is_independent_of_tail_breach ... ok
[INFO] [stdout] test reaper::tests::executor_ignores_unrelated_terminal_job_when_correlated_job_is_still_running ... ok
[INFO] [stdout] test reaper::tests::executor_refuses_delete_when_correlated_job_changes_runner ... ok
[INFO] [stdout] test reaper::tests::executor_refuses_delete_when_cancel_fails ... ok
[INFO] [stdout] test queue_monitor::tests::serve_loop_snapshots_dedupes_repo_overlap_between_ticks ... ok
[INFO] [stdout] test queue_monitor::tests::serve_loop_snapshots_fetches_fleet_and_repos_exactly_once ... ok
[INFO] [stdout] test reaper::tests::executor_refuses_delete_when_force_cancel_fails ... ok
[INFO] [stdout] test reaper::tests::executor_refuses_delete_when_correlated_job_is_missing ... ok
[INFO] [stdout] test reaper::tests::executor_rejects_duplicate_runner_plans_without_second_mutation ... ok
[INFO] [stdout] test reaper::tests::executor_refuses_delete_when_poll_fails ... ok
[INFO] [stdout] test reaper::tests::executor_refuses_to_mutate_with_zero_poll_limit ... ok
[INFO] [stdout] test reaper::tests::executor_refuses_delete_while_job_stays_in_progress_after_force_cancel ... ok
[INFO] [stdout] test reaper::tests::planner_handles_retired_prefix_when_explicitly_allowed ... ok
[INFO] [stdout] test reaper::tests::executor_reports_delete_failure_after_safe_poll ... ok
[INFO] [stdout] test reaper::tests::planner_matches_busy_runner_by_runner_id ... ok
[INFO] [stdout] test reaper::tests::planner_refuses_too_young_or_unmatched_jobs ... ok
[INFO] [stdout] test service::tests::launchd_wrapper_unsets_all_known_gh_auth_masking_vars ... ok
[INFO] [stdout] test service::tests::systemd_alert_unit_invokes_failure_alert_command ... ok
[INFO] [stdout] test service::tests::launchd_wrapper_execs_the_real_binary ... ok
[INFO] [stdout] test reaper::tests::planner_refuses_wrong_prefix_and_missing_labels ... ok
[INFO] [stdout] test docker_backend::tests::start_missing_runners_starts_full_shortfall_directly ... ok
[INFO] [stdout] test service::tests::systemd_service_uses_long_watchdog_budget ... ok
[INFO] [stdout] test service::tests::systemd_service_wires_failure_alert_unit ... ok
[INFO] [stdout] test service::tests::systemd_unit_has_graceful_shutdown_settings ... ok
[INFO] [stdout] test shutdown::tests::flag_starts_clear_and_request_sets_it ... ok
[INFO] [stdout] test shutdown::tests::sleep_interruptibly_returns_early_when_requested ... ok
[INFO] [stdout] test tests::backend_restart_is_allowed_when_backend_selection_is_none ... ok
[INFO] [stdout] test tests::health_poll_timeout_is_also_clamped_to_remaining_outer_budget ... ok
[INFO] [stdout] test tests::invariant_sampler_tick_errors_are_non_fatal_and_write_no_sample ... ok
[INFO] [stdout] test tests::linux_restart_never_invokes_colima_profile_command ... ok
[INFO] [stdout] test tests::backend_restart_is_not_allowed_for_policy_blocked_selection ... ok
[INFO] [stdout] test tests::macos_restart_uses_only_colima_profile_command ... ok
[INFO] [stdout] test tests::backend_restart_timeout_allows_cold_colima_startup ... ok
[INFO] [stdout] test tests::restart_attempt_is_skipped_when_remaining_budget_is_below_floor ... ok
[INFO] [stdout] test tests::queue_monitor_tick_errors_are_non_fatal ... ok
[INFO] [stdout] test tests::restart_attempt_already_expired_deadline_is_skipped_not_attempted ... ok
[INFO] [stdout] test tests::restart_command_timeout_is_clamped_to_remaining_outer_budget ... ok
[INFO] [stdout] test tests::restart_command_reports_missing_binary ... ok
[INFO] [stdout] test canary::tests::daemon_scheduler_respects_interval_and_in_flight_worker ... ok
[INFO] [stdout] test tests::restart_command_uses_full_ceiling_with_no_outer_deadline ... ok
[INFO] [stdout] test queue_monitor::tests::enumerate_jobs_within_budget_stops_a_slow_fetch_within_the_budget ... ok
[INFO] [stdout] test tests::restart_recovery_succeeds_after_delayed_docker_reachable_probe ... ok
[INFO] [stdout] test tests::restart_reports_recovery_only_after_docker_is_reachable ... ok
[INFO] [stdout] test tests::serve_match_arm_counts_partial_ensure_success_as_failure_streak ... ok
[INFO] [stdout] test tests::service_ready_helper_returns_background_watchdog_guard ... ok
[INFO] [stdout] test alert::tests::failed_delivery_does_not_consume_cooldown ... ok
[INFO] [stdout] test tests::systemd_exec_stop_post_success_noops ... ok
[INFO] [stdout] test tests::systemd_exec_stop_post_watchdog_emits_critical_event ... ok
[INFO] [stdout] test tests::systemd_on_failure_exit_code_noops ... ok
[INFO] [stdout] test tests::systemd_on_failure_start_limit_emits_critical_event ... ok
[INFO] [stdout] test tests::test_alert_requires_configured_channel ... ok
[INFO] [stdout] test tests::test_alert_writes_configured_log_channel ... ok
[INFO] [stdout] test tests::restart_command_reports_nonzero ... ok
[INFO] [stdout] test tests::restart_command_reports_success ... ok
[INFO] [stdout] test watchdog::tests::heartbeat_interval_is_bounded ... ok
[INFO] [stdout] test watchdog::tests::heartbeat_interval_is_fraction_of_systemd_budget ... ok
[INFO] [stdout] test alert::tests::command_timeout_kills_hung_process ... ok
[INFO] [stdout] test alert::tests::one_successful_transport_consumes_cooldown ... ok
[INFO] [stdout] test alert::tests::file_log_channel_writes_jsonl_and_consumes_cooldown ... ok
[INFO] [stdout] test tests::restart_command_success_is_not_backend_recovery_without_docker ... ok
[INFO] [stdout] test tests::restart_recovery_gives_up_after_health_poll_ceiling_elapses ... ok
[INFO] [stdout] test tests::state_dir_isolates_serve_locks_between_configs ... ok
[INFO] [stdout] test alert::tests::slack_http_error_status_is_delivery_failure ... ok
[INFO] [stdout] test tests::restart_command_times_out_and_kills_hung_process ... ok
[INFO] [stdout] test tests::restart_command_timeout_kills_descendants ... ok
[INFO] [stdout] test github::tests::list_runners_retries_transient_gh_json_parse_failure ... ok
[INFO] [stdout] test github::tests::run_gh_with_backoff_retries_fake_gh_after_rate_limit ... ok
[INFO] [stdout] test github::tests::generate_jitconfig_retries_transient_empty_json_parse_failure ... ok
[INFO] [stdout] test github::tests::run_gh_with_backoff_retries_fake_gh_after_json_parse_failure ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 275 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 2.16s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "670045def8dba2bd56586e48e9561c3994f0538a88073b24c531d31cb565df84", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "670045def8dba2bd56586e48e9561c3994f0538a88073b24c531d31cb565df84", kill_on_drop: false }`
[INFO] [stdout] 670045def8dba2bd56586e48e9561c3994f0538a88073b24c531d31cb565df84
