[INFO] cloning repository https://github.com/thkt/claude-reviews
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/thkt/claude-reviews" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthkt%2Fclaude-reviews", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthkt%2Fclaude-reviews'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2c2d0751225ba9d643dcd478252f5f51878f07be
[INFO] testing thkt/claude-reviews 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%2Fclaude-reviews" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/thkt/claude-reviews
[INFO] finished tweaking git repo https://github.com/thkt/claude-reviews
[INFO] tweaked toml for git repo https://github.com/thkt/claude-reviews written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/thkt/claude-reviews 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/claude-reviews 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 8d175c39175ef55650e9b02ece89c137540be11e3504a459a5b3c981586f60e8
[INFO] running `Command { std: "docker" "start" "8d175c39175ef55650e9b02ece89c137540be11e3504a459a5b3c981586f60e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8d175c39175ef55650e9b02ece89c137540be11e3504a459a5b3c981586f60e8", 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" "8d175c39175ef55650e9b02ece89c137540be11e3504a459a5b3c981586f60e8" "/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" "8d175c39175ef55650e9b02ece89c137540be11e3504a459a5b3c981586f60e8", 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" "8d175c39175ef55650e9b02ece89c137540be11e3504a459a5b3c981586f60e8" "/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.45
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling reviews v0.8.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.17s
[INFO] running `Command { std: "docker" "inspect" "8d175c39175ef55650e9b02ece89c137540be11e3504a459a5b3c981586f60e8", 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" "8d175c39175ef55650e9b02ece89c137540be11e3504a459a5b3c981586f60e8" "/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 reviews v0.8.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.37s
[INFO] running `Command { std: "docker" "inspect" "8d175c39175ef55650e9b02ece89c137540be11e3504a459a5b3c981586f60e8", 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" "8d175c39175ef55650e9b02ece89c137540be11e3504a459a5b3c981586f60e8" "/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/reviews-f8982f1b7ca73459)
[INFO] [stdout] 
[INFO] [stdout] running 73 tests
[INFO] [stdout] test config::tests::finds_config_in_parent_directory ... ok
[INFO] [stdout] test config::tests::empty_skills_list_is_preserved ... ok
[INFO] [stdout] test config::tests::default_config_all_tools_enabled ... ok
[INFO] [stdout] test project::tests::detects_package_json ... ok
[INFO] [stdout] test config::tests::loads_from_legacy_config ... ok
[INFO] [stdout] test config::tests::invalid_json_falls_back_to_default ... ok
[INFO] [stdout] test config::tests::partial_config_from_tools_json ... ok
[INFO] [stdout] test config::tests::skills_null_treated_as_none ... ok
[INFO] [stdout] test config::tests::skills_override_replaces_default ... ok
[INFO] [stdout] test config::tests::tools_json_takes_priority_over_legacy ... ok
[INFO] [stdout] test config::tests::default_skills_is_none ... ok
[INFO] [stdout] test project::tests::detects_react_dependency ... ok
[INFO] [stdout] test project::tests::detects_react_in_peer_dependencies ... ok
[INFO] [stdout] test project::tests::no_package_json ... ok
[INFO] [stdout] test config::tests::skills_wrong_type_falls_back_to_default ... ok
[INFO] [stdout] test config::tests::enabled_false_disables_all ... ok
[INFO] [stdout] test project::tests::detects_react_in_dev_dependencies ... ok
[INFO] [stdout] test resolve::tests::stops_at_git_boundary ... 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 tests::build_output_all_empty_output ... ok
[INFO] [stdout] test resolve::tests::falls_back_to_bare_name_when_no_node_modules ... ok
[INFO] [stdout] test tests::build_output_empty_slice ... ok
[INFO] [stdout] test project::tests::no_react_dependency ... ok
[INFO] [stdout] test config::tests::tools_json_without_reviews_key_returns_defaults ... ok
[INFO] [stdout] test tests::build_output_includes_failed_with_output ... ok
[INFO] [stdout] test tests::build_output_partial_success ... ok
[INFO] [stdout] test project::tests::malformed_package_json_no_react ... ok
[INFO] [stdout] test tests::parse_skill_name_invalid_json ... ok
[INFO] [stdout] test tests::build_output_excludes_successful_but_empty ... ok
[INFO] [stdout] test sanitize::tests::removes_trailing_whitespace ... ok
[INFO] [stdout] test sanitize::tests::empty_input_returns_empty ... ok
[INFO] [stdout] test sanitize::tests::json_passes_through_unchanged ... ok
[INFO] [stdout] test sanitize::tests::removes_multiple_bold_markers ... ok
[INFO] [stdout] test sanitize::tests::removes_bold_marker ... ok
[INFO] [stdout] test tests::run_returns_none_for_invalid_input ... ok
[INFO] [stdout] test sanitize::tests::compresses_consecutive_blank_lines ... ok
[INFO] [stdout] test sanitize::tests::preserves_single_and_double_backticks ... ok
[INFO] [stdout] test sanitize::tests::preserves_single_asterisks ... ok
[INFO] [stdout] test sanitize::tests::removes_complex_ansi_codes ... ok
[INFO] [stdout] test tests::run_returns_none_for_skill_not_in_config ... ok
[INFO] [stdout] test tests::warn_missing_tools_ignores_failed_with_output ... ok
[INFO] [stdout] test sanitize::tests::removes_ansi_escape_codes ... ok
[INFO] [stdout] test tests::run_returns_none_when_disabled ... ok
[INFO] [stdout] test tools::knip::tests::skips_without_package_json ... ok
[INFO] [stdout] test tests::warn_missing_tools_ignores_successful ... ok
[INFO] [stdout] test tools::tests::combine_output_stderr_only ... ok
[INFO] [stdout] test sanitize::tests::collapses_backtick_runs ... ok
[INFO] [stdout] test tests::parse_skill_name_missing ... ok
[INFO] [stdout] test tests::parse_skill_name_valid ... ok
[INFO] [stdout] test tools::oxlint::tests::skips_without_package_json ... ok
[INFO] [stdout] test tools::markuplint::tests::skips_without_package_json ... ok
[INFO] [stdout] test tools::react_doctor::tests::skips_without_react ... ok
[INFO] [stdout] test tools::tests::combine_output_both_streams ... ok
[INFO] [stdout] test tests::run_returns_none_for_empty_skills ... ok
[INFO] [stdout] test tools::tests::combine_output_stdout_only ... ok
[INFO] [stdout] test tests::warn_missing_tools_skipped_result ... ok
[INFO] [stdout] test tests::run_returns_none_for_non_matching_skill ... ok
[INFO] [stdout] test tests::parse_skill_name_with_args ... ok
[INFO] [stdout] test tools::tests::skipped_result_is_empty_and_failed ... ok
[INFO] [stdout] test tools::tsgo::tests::skips_without_tsconfig ... 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::enforce_total_budget_no_truncation_when_within_limit ... ok
[INFO] [stdout] test tools::tests::enforce_total_budget_truncates_excess ... ok
[INFO] [stdout] test tools::tests::combine_output_truncates_large_output ... ok
[INFO] [stdout] test traverse::tests::finds_target_in_parent ... ok
[INFO] [stdout] test tools::tests::run_with_timeout_captures_exit_code ... ok
[INFO] [stdout] test tools::tests::run_with_timeout_success ... ok
[INFO] [stdout] test tools::tests::run_with_timeout_handles_missing_command ... ok
[INFO] [stdout] test tests::thread_panic_returns_skipped ... ok
[INFO] [stdout] test tools::tests::run_with_timeout_duration_kills_on_timeout ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 73 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-160fddce01d83769)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test disabled_config_exits_silently ... ok
[INFO] [stdout] test exits_zero_on_valid_processing ... ok
[INFO] [stdout] test invalid_json_exits_silently ... ok
[INFO] [stdout] test empty_input_exits_silently ... ok
[INFO] [stdout] test no_config_warns_about_setup ... ok
[INFO] [stdout] test legacy_config_without_skills_warns_about_filtering ... ok
[INFO] [stdout] test tools_json_without_skills_warns_about_filtering ... ok
[INFO] [stdout] test non_target_skill_exits_silently ... ok
[INFO] [stdout] test configured_skills_runs_without_warning ... ok
[INFO] [stdout] test default_skill_does_not_crash ... ok
[INFO] [stdout] test configured_skill_does_not_crash ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "8d175c39175ef55650e9b02ece89c137540be11e3504a459a5b3c981586f60e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8d175c39175ef55650e9b02ece89c137540be11e3504a459a5b3c981586f60e8", kill_on_drop: false }`
[INFO] [stdout] 8d175c39175ef55650e9b02ece89c137540be11e3504a459a5b3c981586f60e8
