[INFO] cloning repository https://github.com/thkt/gates
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/thkt/gates" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthkt%2Fgates", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthkt%2Fgates'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9533205d91cfee111a2d8e6a7b4d7c102eb60473
[INFO] testing thkt/gates against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthkt%2Fgates" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/thkt/gates
[INFO] finished tweaking git repo https://github.com/thkt/gates
[INFO] tweaked toml for git repo https://github.com/thkt/gates written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/thkt/gates 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/thkt/gates 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] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded phf_macros v0.14.0
[INFO] [stderr]   Downloaded smawk v0.3.3
[INFO] [stderr]   Downloaded oxc_index v5.0.0
[INFO] [stderr]   Downloaded oxc_diagnostics v0.138.0
[INFO] [stderr]   Downloaded oxc_data_structures v0.138.0
[INFO] [stderr]   Downloaded oxc_str v0.138.0
[INFO] [stderr]   Downloaded oxc_ecmascript v0.138.0
[INFO] [stderr]   Downloaded unicode-id-start v1.4.0
[INFO] [stderr]   Downloaded oxc-miette v3.0.0
[INFO] [stderr]   Downloaded oxc_estree v0.138.0
[INFO] [stderr]   Downloaded oxc_regular_expression v0.138.0
[INFO] [stderr]   Downloaded phf v0.14.0
[INFO] [stderr]   Downloaded dragonbox_ecma v0.1.12
[INFO] [stderr]   Downloaded oxc-miette-derive v3.0.0
[INFO] [stderr]   Downloaded phf_shared v0.14.0
[INFO] [stderr]   Downloaded oxc_ast v0.138.0
[INFO] [stderr]   Downloaded oxc_span v0.138.0
[INFO] [stderr]   Downloaded oxc_syntax v0.138.0
[INFO] [stderr]   Downloaded phf_generator v0.14.0
[INFO] [stderr]   Downloaded oxc_parser v0.138.0
[INFO] [stderr]   Downloaded oxc_ast_macros v0.138.0
[INFO] [stderr]   Downloaded num-bigint v0.4.8
[INFO] [stderr]   Downloaded cow-utils v0.1.3
[INFO] [stderr]   Downloaded oxc_allocator v0.138.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 1b280b1f09c628ab7391ceeb237c30131995f19ca7b4322cc35dacf59d945587
[INFO] running `Command { std: "docker" "start" "1b280b1f09c628ab7391ceeb237c30131995f19ca7b4322cc35dacf59d945587", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1b280b1f09c628ab7391ceeb237c30131995f19ca7b4322cc35dacf59d945587", 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" "1b280b1f09c628ab7391ceeb237c30131995f19ca7b4322cc35dacf59d945587" "/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" "1b280b1f09c628ab7391ceeb237c30131995f19ca7b4322cc35dacf59d945587", 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" "1b280b1f09c628ab7391ceeb237c30131995f19ca7b4322cc35dacf59d945587" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stderr]    Compiling siphasher v1.0.3
[INFO] [stderr]    Compiling dragonbox_ecma v0.1.12
[INFO] [stderr]    Compiling owo-colors v4.3.0
[INFO] [stderr]    Compiling smawk v0.3.3
[INFO] [stderr]    Compiling oxc_data_structures v0.138.0
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling unicode-linebreak v0.1.5
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling rustc-hash v2.1.3
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling cow-utils v0.1.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling unicode-id-start v1.4.0
[INFO] [stderr]    Compiling memchr v2.8.2
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling phf_shared v0.14.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling seq-macro v0.3.6
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling oxc_estree v0.138.0
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling phf v0.14.0
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling phf_generator v0.14.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-bigint v0.4.8
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling oxc-miette-derive v3.0.0
[INFO] [stderr]    Compiling phf_macros v0.14.0
[INFO] [stderr]    Compiling oxc_ast_macros v0.138.0
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling oxc-miette v3.0.0
[INFO] [stderr]    Compiling oxc_diagnostics v0.138.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling oxc_allocator v0.138.0
[INFO] [stderr]    Compiling oxc_index v5.0.0
[INFO] [stderr]    Compiling oxc_str v0.138.0
[INFO] [stderr]    Compiling oxc_span v0.138.0
[INFO] [stderr]    Compiling oxc_syntax v0.138.0
[INFO] [stderr]    Compiling oxc_regular_expression v0.138.0
[INFO] [stderr]    Compiling oxc_ast v0.138.0
[INFO] [stderr]    Compiling oxc_ecmascript v0.138.0
[INFO] [stderr]    Compiling oxc_parser v0.138.0
[INFO] [stderr]    Compiling litmus v0.3.0 (https://github.com/thkt/litmus.git?rev=aaa8512e7881af27e6e0605b1329520cf60dd50b#aaa8512e)
[INFO] [stderr]    Compiling gates v0.12.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.89s
[INFO] running `Command { std: "docker" "inspect" "1b280b1f09c628ab7391ceeb237c30131995f19ca7b4322cc35dacf59d945587", 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" "1b280b1f09c628ab7391ceeb237c30131995f19ca7b4322cc35dacf59d945587" "/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 gates v0.12.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.09s
[INFO] running `Command { std: "docker" "inspect" "1b280b1f09c628ab7391ceeb237c30131995f19ca7b4322cc35dacf59d945587", 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" "1b280b1f09c628ab7391ceeb237c30131995f19ca7b4322cc35dacf59d945587" "/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.06s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/gates-5754c93aabf486f1)
[INFO] [stdout] 
[INFO] [stdout] running 288 tests
[INFO] [stdout] test audit::tests::formats_known_epoch ... ok
[INFO] [stdout] test audit::tests::formats_leap_day ... ok
[INFO] [stdout] test audit::tests::formats_unix_epoch_zero ... ok
[INFO] [stdout] test audit::tests::append_then_query_round_trips ... ok
[INFO] [stdout] test audit::tests::append_creates_missing_directory ... ok
[INFO] [stdout] test audit::tests::query_missing_file_returns_empty ... ok
[INFO] [stdout] test audit::tests::renders_align_columns_by_char_count_for_non_ascii ... ok
[INFO] [stdout] test audit::tests::renders_table_with_header_and_failed_dash ... ok
[INFO] [stdout] test audit::tests::query_filters_by_decision ... ok
[INFO] [stdout] test audit::tests::query_skips_corrupt_lines ... ok
[INFO] [stdout] test audit::tests::query_keeps_last_n_of_matched_set ... ok
[INFO] [stdout] test audit::tests::renders_empty_entries_as_header_only ... ok
[INFO] [stdout] test circular::tests::empty_directory ... ok
[INFO] [stdout] test circular::tests::detects_simple_cycle ... ok
[INFO] [stdout] test circular::tests::detects_three_node_cycle ... ok
[INFO] [stdout] test circular::tests::ignores_bare_imports ... ok
[INFO] [stdout] test circular::tests::handles_reexports ... ok
[INFO] [stdout] test circular::tests::no_cycles_in_clean_project ... ok
[INFO] [stdout] test circular::tests::skips_node_modules ... ok
[INFO] [stdout] test circular::tests::resolves_index_files ... ok
[INFO] [stdout] test clone::tests::counts_multiplicity_across_files ... ok
[INFO] [stdout] test clone::tests::detects_type1_exact_clone ... ok
[INFO] [stdout] test clone::tests::skips_unreadable_files ... ok
[INFO] [stdout] test clone::tests::ignores_clone_below_min_nodes ... ok
[INFO] [stdout] test clone::tests::detects_type2_structural_clone ... ok
[INFO] [stdout] test clone::tests::instances_sorted_by_path ... ok
[INFO] [stdout] test clone::tests::ignores_clone_below_min_lines ... ok
[INFO] [stdout] test clone::tests::detects_clone_when_one_copy_is_compacted_below_min_lines ... ok
[INFO] [stdout] test audit::tests::concurrent_appends_do_not_tear_lines ... ok
[INFO] [stdout] test color::tests::strip_ansi_preserves_plain ... ok
[INFO] [stdout] test clone::tests::no_clone_when_structures_differ ... ok
[INFO] [stdout] test clone::tests::prunes_nested_clone ... ok
[INFO] [stdout] test config::tests::gates_and_coupling_coexist ... ok
[INFO] [stdout] test color::tests::strip_ansi_removes_codes ... ok
[INFO] [stdout] test config::tests::missing_clone_section_yields_none ... ok
[INFO] [stdout] test clone::tests::groups_sorted_by_node_count_desc ... ok
[INFO] [stdout] test config::tests::missing_file_enables_all_gates ... ok
[INFO] [stdout] test config::tests::coupling_disabled_has_no_threshold ... ok
[INFO] [stdout] test config::tests::missing_coupling_section_yields_none ... ok
[INFO] [stdout] test config::tests::invalid_json_enables_all_gates ... ok
[INFO] [stdout] test clone::tests::reports_source_line_numbers ... ok
[INFO] [stdout] test config::tests::missing_gates_section_enables_all_gates ... ok
[INFO] [stdout] test config::tests::non_bool_gate_values_are_ignored ... ok
[INFO] [stdout] test coupling::tests::afferent_counts_importers ... ok
[INFO] [stdout] test config::tests::partial_gates_section ... ok
[INFO] [stdout] test config::tests::reads_clone_section ... ok
[INFO] [stdout] test clone::tests::renders_regex_payload_in_clone_path ... ok
[INFO] [stdout] test coupling::tests::efferent_sums_internal_and_external ... ok
[INFO] [stdout] test coupling::tests::equal_ca_tiebreaks_by_path ... ok
[INFO] [stdout] test config::tests::reads_coupling_ca_threshold ... ok
[INFO] [stdout] test coupling::tests::flags_module_above_threshold ... ok
[INFO] [stdout] test config::tests::reads_gates_section ... ok
[INFO] [stdout] test config::tests::missing_jscpd_section_yields_none ... ok
[INFO] [stdout] test coupling::tests::instability_ratio ... ok
[INFO] [stdout] test coupling::tests::isolated_module_instability_zero ... ok
[INFO] [stdout] test coupling::tests::god_modules_sorted_by_ca_desc ... ok
[INFO] [stdout] test config::tests::partial_clone_section ... ok
[INFO] [stdout] test clone::tests::tolerates_syntax_error_file ... ok
[INFO] [stdout] test config::tests::partial_jscpd_section ... ok
[INFO] [stdout] test config::tests::reads_jscpd_section ... ok
[INFO] [stdout] test coupling::tests::pure_sink_instability_zero ... ok
[INFO] [stdout] test config::tests::unknown_gate_names_are_preserved ... ok
[INFO] [stdout] test coupling::tests::threshold_boundary_not_flagged ... ok
[INFO] [stdout] test depgraph::tests::excluded_dirs_is_pinned ... ok
[INFO] [stdout] test hook_exit::tests::advisory_is_one ... ok
[INFO] [stdout] test hook_exit::tests::blocking_is_two ... ok
[INFO] [stdout] test hook_exit::tests::input_error_is_sysexits_usage ... ok
[INFO] [stdout] test depgraph::tests::empty_directory ... ok
[INFO] [stdout] test hook_exit::tests::internal_is_sysexits_software ... ok
[INFO] [stdout] test depgraph::tests::bare_import_counts_external ... ok
[INFO] [stdout] test depgraph::tests::duplicate_imports_record_single_edge ... ok
[INFO] [stdout] test hook_exit::tests::pass_is_zero ... ok
[INFO] [stdout] test depgraph::tests::mixed_internal_and_external ... ok
[INFO] [stdout] test depgraph::tests::excludes_node_modules ... ok
[INFO] [stdout] test project::tests::excluded_dirs_matches_guarded_fixture ... ok
[INFO] [stdout] test depgraph::tests::excludes_remaining_hardcoded_dirs_but_collects_control_file ... ok
[INFO] [stdout] test depgraph::tests::relative_import_records_edge ... ok
[INFO] [stdout] test depgraph::tests::reexport_records_edge ... ok
[INFO] [stdout] test project::tests::detects_package_json_only ... ok
[INFO] [stdout] test reporter::tests::all_passed_one_line ... ok
[INFO] [stdout] test reporter::tests::blank_lines_excluded_from_preview ... ok
[INFO] [stdout] test project::tests::detects_both_files ... ok
[INFO] [stdout] test project::tests::detects_tsconfig_only ... ok
[INFO] [stdout] test reporter::tests::empty_slice_returns_empty ... ok
[INFO] [stdout] test depgraph::tests::resolves_index_file ... ok
[INFO] [stdout] test reporter::tests::empty_when_all_skipped ... ok
[INFO] [stdout] test reporter::tests::failure_empty_output_no_preview ... ok
[INFO] [stdout] test project::tests::discovery_skips_node_modules ... ok
[INFO] [stdout] test project::tests::self_contained_tsconfig_root_targets_only_itself ... ok
[INFO] [stdout] test project::tests::no_project_files ... ok
[INFO] [stdout] test reporter::tests::failure_output_preview ... ok
[INFO] [stdout] test reporter::tests::failure_and_warning_show_both ... ok
[INFO] [stdout] test project::tests::self_contained_src_root_targets_only_itself ... ok
[INFO] [stdout] test reporter::tests::header_footer_separators_match_guardrails ... ok
[INFO] [stdout] test project::tests::discovery_skips_claude_dir ... ok
[INFO] [stdout] test project::tests::uses_git_root_not_subdir ... ok
[INFO] [stdout] test project::tests::circular_gate_detects_cycle_inside_nested_package ... ok
[INFO] [stdout] test project::tests::nested_monorepo_targets_the_tsconfig_owning_package ... ok
[INFO] [stdout] test reporter::tests::multiple_failures_plural ... ok
[INFO] [stdout] test reporter::tests::failure_output_truncated ... ok
[INFO] [stdout] test reporter::tests::no_advisory_when_no_warnings ... ok
[INFO] [stdout] test reporter::tests::skipped_gates_excluded_from_count ... ok
[INFO] [stdout] test reporter::tests::failure_shows_only_failed_gates ... ok
[INFO] [stdout] test reporter::tests::warning_only_is_advisory_not_blocked ... ok
[INFO] [stdout] test reporter::tests::warning_excluded_from_pass_count ... ok
[INFO] [stdout] test project::tests::discovery_skips_all_hardcoded_excluded_names_but_keeps_control_pkg ... ok
[INFO] [stdout] test runner::tests::skipped_result ... ok
[INFO] [stdout] test runner::tests::warned_is_not_skipped ... ok
[INFO] [stdout] test resolve::tests::falls_back_to_bare_name ... ok
[INFO] [stdout] test resolve::tests::finds_bin_in_node_modules ... ok
[INFO] [stdout] test resolve::tests::skips_non_executable_bin ... ok
[INFO] [stdout] test runner::tests::warned_exposes_output ... ok
[INFO] [stdout] test sanitize::tests::tail_empty_string ... ok
[INFO] [stdout] test runner::tests::warned_is_not_failure ... ok
[INFO] [stdout] test runner::tests::join_or_skip_passes_results_through_on_success ... ok
[INFO] [stdout] test sanitize::tests::tail_exact_limit ... ok
[INFO] [stdout] test sanitize::tests::empty_input_returns_empty ... ok
[INFO] [stdout] test sanitize::tests::preserves_single_blank_line ... ok
[INFO] [stdout] test sanitize::tests::removes_complex_ansi_codes ... ok
[INFO] [stdout] test sanitize::tests::removes_ansi_escape_codes ... ok
[INFO] [stdout] test sanitize::tests::removes_trailing_whitespace ... ok
[INFO] [stdout] test sanitize::tests::compresses_consecutive_blank_lines ... ok
[INFO] [stdout] test runner::tests::command_failure ... ok
[INFO] [stdout] test sanitize::tests::tail_no_op_when_within_limit ... ok
[INFO] [stdout] test sanitize::tests::tail_single_line ... ok
[INFO] [stdout] test sanitize::tests::tail_keeps_last_n_lines_with_indicator ... ok
[INFO] [stdout] test snapshot::tests::digest_changes_on_target_file_add_t003 ... ok
[INFO] [stdout] test snapshot::tests::digest_changes_on_target_file_delete_t004 ... ok
[INFO] [stdout] test snapshot::tests::digest_changes_on_nested_tsconfig_t009 ... ok
[INFO] [stdout] test snapshot::tests::digest_changes_on_mts_and_cts_add_t008 ... ok
[INFO] [stdout] test snapshot::tests::digest_changes_on_target_file_rename_t005 ... ok
[INFO] [stdout] test snapshot::tests::digest_changes_on_content_size_edit_t001 ... ok
[INFO] [stdout] test snapshot::tests::digest_unchanged_on_excluded_dir_edit_t007 ... ok
[INFO] [stdout] test snapshot::tests::digest_unchanged_on_claude_dir_edit ... ok
[INFO] [stdout] test snapshot::tests::read_stored_missing_dir_is_none_t020 ... ok
[INFO] [stdout] test snapshot::tests::digest_unchanged_on_non_target_file_edit_t006 ... ok
[INFO] [stdout] test runner::tests::spawn_error_returns_skipped ... ok
[INFO] [stdout] test snapshot::tests::stat_failed_file_contributes_sentinel_t022 ... ok
[INFO] [stdout] test snapshot::tests::write_is_atomic_no_tmp_leftover_t013 ... ok
[INFO] [stdout] test runner::tests::command_success ... ok
[INFO] [stdout] test snapshot::tests::read_stored_missing_file_is_none_t010 ... ok
[INFO] [stdout] test snapshot::tests::read_stored_corrupt_file_is_none_t011 ... ok
[INFO] [stdout] test snapshot::tests::write_then_read_round_trips_t012 ... ok
[INFO] [stdout] test snapshot::tests::write_then_read_matches_so_followup_skips_t018 ... ok
[INFO] [stdout] test snapshot::tests::digest_changes_when_mtime_restored_to_past_t002 ... ok
[INFO] [stdout] test snapshot::tests::digest_ignores_all_hardcoded_excluded_dirs_but_tracks_control_file ... ok
[INFO] [stdout] test tests::audit_not_written_when_no_gate_runs ... ok
[INFO] [stdout] test tests::changed_no_op_when_no_enabled_gates_t016 ... ok
[INFO] [stdout] test tests::changed_skips_when_unchanged_t014 ... ok
[INFO] [stdout] test tests::audit_records_pass_decision ... ok
[INFO] [stdout] test tests::all_pass_allows_completion ... ok
[INFO] [stdout] test tests::changed_emits_block_json_on_failure_t017 ... ok
[INFO] [stdout] test tests::dispatch_changed_rejects_missing_dir_t002 ... ok
[INFO] [stdout] test tests::dispatch_default_rejects_too_many_args_t004 ... ok
[INFO] [stdout] test tests::dispatch_default_rejects_missing_dir_t003 ... ok
[INFO] [stdout] test tests::changed_does_not_retrigger_after_gate_emits_target_file_t023 ... ok
[INFO] [stdout] test tests::audit_write_failure_does_not_block_the_hook ... ok
[INFO] [stdout] test tests::dispatch_has_no_post_bash_alias_t005 ... ok
[INFO] [stdout] test tests::dispatch_routes_show_usage_error_t001 ... ok
[INFO] [stdout] test tests::circular_fans_out_into_nested_package_and_labels_scope ... ok
[INFO] [stdout] test tests::format_multiple_failures ... ok
[INFO] [stdout] test tests::format_multiple_failures_mixed_hints ... ok
[INFO] [stdout] test tests::format_multiple_failures_without_output ... ok
[INFO] [stdout] test tests::format_single_failure_fallback_hint ... ok
[INFO] [stdout] test tests::format_single_failure_without_output ... ok
[INFO] [stdout] test tests::format_single_failure_with_output ... ok
[INFO] [stdout] test tests::circular_fans_out_into_two_members_labeling_each ... ok
[INFO] [stdout] test tests::changed_runs_and_updates_digest_when_changed_t015 ... ok
[INFO] [stdout] test tests::hint_not_shown_when_explicit_config ... ok
[INFO] [stdout] test tests::clone_fans_out_into_nested_package_and_labels_scope ... ok
[INFO] [stdout] test tests::hint_not_shown_when_no_claude_dir ... ok
[INFO] [stdout] test tests::hint_not_shown_when_file_exists_without_gates_key ... ok
[INFO] [stdout] test tests::clone_self_contained_root_failure_carries_no_scope_label ... ok
[INFO] [stdout] test tests::changed_fires_after_sed_edit_t021 ... ok
[INFO] [stdout] test tests::hint_shown_when_default_config_with_claude_dir ... ok
[INFO] [stdout] test tests::failing_gate_returns_block_json ... ok
[INFO] [stdout] test tests::enabled_gate_condition_not_met_passes ... ok
[INFO] [stdout] test tests::enabled_gate_missing_command_passes ... ok
[INFO] [stdout] test tests::run_show_rejects_unknown_flag_with_ex_usage ... ok
[INFO] [stdout] test tests::no_enabled_gates_returns_none ... ok
[INFO] [stdout] test tests::show_args_parse_json_flag ... ok
[INFO] [stdout] test tests::show_args_parse_last_and_decision ... ok
[INFO] [stdout] test tests::show_args_reject_invalid_decision ... ok
[INFO] [stdout] test tests::no_config_all_gates_skipped_returns_none ... ok
[INFO] [stdout] test tests::show_args_default_to_last_20_no_filter ... ok
[INFO] [stdout] test tests::show_human_empty_suppresses_output ... ok
[INFO] [stdout] test tests::show_human_non_empty_renders_table ... ok
[INFO] [stdout] test tests::show_args_reject_non_numeric_last ... ok
[INFO] [stdout] test tests::show_args_reject_unknown_flag ... ok
[INFO] [stdout] test tests::show_json_empty_emits_empty_array ... ok
[INFO] [stdout] test tests::usage_errors_use_ex_usage_64 ... ok
[INFO] [stdout] test tests::show_json_emits_parseable_array_round_tripping_entries ... ok
[INFO] [stdout] test tools::tests::bpaf_unknown_flag_stderr_を含む_oxlint_の_failed_は_warned_に降格し_banner_が先頭に付く ... ok
[INFO] [stdout] test tools::tests::circular_skips_without_src_dir ... ok
[INFO] [stdout] test tools::tests::circular_skips_without_package_json ... ok
[INFO] [stdout] test tests::legacy_test_cmd_runs_single_gate ... ok
[INFO] [stdout] test tests::self_contained_root_failure_carries_no_scope_label ... ok
[INFO] [stdout] test tools::tests::circular_detects_cycle ... ok
[INFO] [stdout] test tools::tests::circular_passes_clean_project ... ok
[INFO] [stdout] test tools::tests::clone_ignores_declaration_files ... ok
[INFO] [stdout] test tests::parallel_gate_failures_return_block_json_listing_both ... ok
[INFO] [stdout] test tools::tests::coupling_skips_without_package_json ... ok
[INFO] [stdout] test tools::tests::coupling_passes_under_threshold ... ok
[INFO] [stdout] test tests::gates_dir_output_is_byte_identical_t019 ... ok
[INFO] [stdout] test tools::tests::default_jscpd_ignore_excludes_claude_dir ... ok
[INFO] [stdout] test tools::tests::coupling_skips_without_src_dir ... ok
[INFO] [stdout] test tests::script_gate_lint_failure_blocks ... ok
[INFO] [stdout] test tools::tests::coupling_detects_god_module ... ok
[INFO] [stdout] test tools::tests::depcruise_condition_false_without_config ... ok
[INFO] [stdout] test tools::tests::coupling_skips_without_threshold ... ok
[INFO] [stdout] test tools::tests::depcruise_definition_uses_auto_detect ... ok
[INFO] [stdout] test tools::tests::depcruise_condition_true_with_mjs_config ... ok
[INFO] [stdout] test tools::tests::depcruise_condition_true_with_json_config ... ok
[INFO] [stdout] test tests::tsgo_fans_out_into_nested_package_and_labels_scope ... ok
[INFO] [stdout] test tools::tests::depcruise_condition_true_with_cjs_config ... ok
[INFO] [stdout] test tools::tests::detect_lint_gate_when_script_exists ... ok
[INFO] [stdout] test tools::tests::downgrade_keeps_real_failure_blocking ... ok
[INFO] [stdout] test tools::tests::depcruise_skips_without_config ... ok
[INFO] [stdout] test tools::tests::clone_blocks_at_threshold ... ok
[INFO] [stdout] test tools::tests::detect_type_check_gate_test_type ... ok
[INFO] [stdout] test tools::tests::detect_type_check_gate_typecheck ... ok
[INFO] [stdout] test tools::tests::clone_passes_below_threshold ... ok
[INFO] [stdout] test tools::tests::downgraded_result_renders_banner_first_in_advisory ... ok
[INFO] [stdout] test tools::tests::detect_run_prefix_from_lock_files ... ok
[INFO] [stdout] test tools::tests::detect_test_gate_unit_with_type_check ... ok
[INFO] [stdout] test tools::tests::downgrade_turns_unbootstrapped_failure_into_warning ... ok
[INFO] [stdout] test tools::tests::depcruise_condition_true_with_js_config ... ok
[INFO] [stdout] test tools::tests::detect_test_gate_fallback_to_test ... ok
[INFO] [stdout] test tools::tests::from_env_filters_empty_override_to_none ... ok
[INFO] [stdout] test tools::tests::from_env_ignores_bare_unprefixed_names ... ok
[INFO] [stdout] test tools::tests::env_override_lint_cmd ... ok
[INFO] [stdout] test tools::tests::from_env_reads_gates_prefixed_names ... ok
[INFO] [stdout] test tools::tests::gates_skip_when_condition_not_met ... ok
[INFO] [stdout] test tools::tests::jscpd_fails_above_threshold_with_block ... ok
[INFO] [stdout] test tools::tests::jscpd_parse_rejects_invalid_json ... ok
[INFO] [stdout] test tools::tests::jscpd_passes_below_threshold ... ok
[INFO] [stdout] test tools::tests::gate_conditions_are_correct ... ok
[INFO] [stdout] test tools::tests::jscpd_report_lists_file_pairs ... ok
[INFO] [stdout] test tools::tests::jscpd_passes_at_threshold_boundary ... ok
[INFO] [stdout] test tools::tests::jscpd_skips_without_package_json ... ok
[INFO] [stdout] test tools::tests::jscpd_warns_above_threshold_without_block ... ok
[INFO] [stdout] test tools::tests::litmus_skips_when_no_test_files ... ok
[INFO] [stdout] test tools::tests::jscpd_skips_when_report_missing ... ok
[INFO] [stdout] test tools::tests::jscpd_default_ignore_excludes_git_dir ... ok
[INFO] [stdout] test tools::tests::litmus_detects_tautological_test ... ok
[INFO] [stdout] test tools::tests::litmus_passes_with_good_tests ... ok
[INFO] [stdout] test tools::tests::litmus_excludes_dot_claude_as_exact_component_not_substring ... ok
[INFO] [stdout] test tools::tests::merge_jscpd_ignore_dedups_user_echo_of_a_default ... ok
[INFO] [stdout] test tools::tests::litmus_analyzes_member_tests_in_root_manifest_less_monorepo ... ok
[INFO] [stdout] test tools::tests::litmus_skips_when_only_tests_live_under_dot_claude_at_any_depth ... ok
[INFO] [stdout] test tools::tests::litmus_skips_when_tree_has_no_tests_even_without_a_manifest ... ok
[INFO] [stdout] test tools::tests::merge_jscpd_ignore_extends_defaults_rather_than_replacing ... ok
[INFO] [stdout] test tools::tests::merge_jscpd_ignore_without_user_config_returns_defaults ... ok
[INFO] [stdout] test tools::tests::litmus_reports_both_tiers_when_mixed ... ok
[INFO] [stdout] test tools::tests::no_lint_gate_when_no_script ... ok
[INFO] [stdout] test tools::tests::no_lock_file_skips_script_gates_without_override ... ok
[INFO] [stdout] test tools::tests::missing_command_returns_skipped ... ok
[INFO] [stdout] test tools::tests::oxlint_condition_false_when_tsgolint_absent ... ok
[INFO] [stdout] test tools::tests::litmus_warns_without_blocking_on_warning_tier ... ok
[INFO] [stdout] test tools::tests::oxlint_definition_uses_type_aware_without_type_check ... ok
[INFO] [stdout] test tools::tests::oxlint_condition_false_without_tsconfig ... ok
[INFO] [stdout] test tools::tests::litmus_reports_real_test_but_not_dot_claude_sibling ... ok
[INFO] [stdout] test tools::tests::oxlint_skips_when_tsgolint_absent ... ok
[INFO] [stdout] test tools::tests::passed_と_skipped_と_warned_の結果は降格処理を素通しする ... ok
[INFO] [stdout] test tools::tests::per_package_fan_out_の_scoped_ラベル付与後も_warned_降格が保たれる ... ok
[INFO] [stdout] test tools::tests::unbootstrapped_detects_missing_codegen_file ... ok
[INFO] [stdout] test tools::tests::unbootstrapped_detects_missing_package ... ok
[INFO] [stdout] test tools::tests::pnpm_lock_generates_pnpm_commands ... ok
[INFO] [stdout] test tools::tests::oxlint_condition_true_with_tsconfig_and_tsgolint ... ok
[INFO] [stdout] test tools::tests::unbootstrapped_false_for_real_type_error ... ok
[INFO] [stdout] test tools::tests::unbootstrapped_false_without_ts_errors ... ok
[INFO] [stdout] test tools::tests::降格結果は_format_summary_の_advisory_block_に表示され_block_対象に数えられない ... ok
[INFO] [stdout] test tools::tests::unbootstrapped_true_when_other_error_coexists ... ok
[INFO] [stdout] test tools::tests::バッククォート前置パターン非該当の_failed_は_failed_のまま残る ... ok
[INFO] [stdout] test traverse::tests::finds_target_in_parent ... ok
[INFO] [stdout] test tools::tests::oxlint_以外の_gate_は_bpaf_パターンを含んでも降格されない ... ok
[INFO] [stdout] test traverse::tests::finds_target_in_start_dir ... ok
[INFO] [stdout] test traverse::tests::returns_none_when_not_found ... ok
[INFO] [stdout] test traverse::tests::stops_at_git_boundary ... ok
[INFO] [stdout] test tools::tests::type_check_unbootstrapped_downgrades_and_skips_test ... ok
[INFO] [stdout] test tools::tests::jscpd_warns_from_written_report ... ok
[INFO] [stdout] test tools::tests::type_check_fail_cascades_to_skip_test ... ok
[INFO] [stdout] test runner::tests::join_or_skip_maps_lint_panic_to_skipped ... ok
[INFO] [stdout] test tests::dispatch_or_internal_maps_panic_to_seventy ... ok
[INFO] [stdout] test tests::join_into_maps_panic_to_skipped_per_fallback_name ... ok
[INFO] running `Command { std: "docker" "inspect" "1b280b1f09c628ab7391ceeb237c30131995f19ca7b4322cc35dacf59d945587", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1b280b1f09c628ab7391ceeb237c30131995f19ca7b4322cc35dacf59d945587", kill_on_drop: false }`
[INFO] [stdout] 1b280b1f09c628ab7391ceeb237c30131995f19ca7b4322cc35dacf59d945587
