[INFO] cloning repository https://github.com/teimurjan/claude-hooks
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/teimurjan/claude-hooks" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fteimurjan%2Fclaude-hooks", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fteimurjan%2Fclaude-hooks'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e37215bc79b6eed3259b36675c870be7e4ad0970
[INFO] testing teimurjan/claude-hooks against 1.95.0 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fteimurjan%2Fclaude-hooks" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/teimurjan/claude-hooks
[INFO] finished tweaking git repo https://github.com/teimurjan/claude-hooks
[INFO] tweaked toml for git repo https://github.com/teimurjan/claude-hooks written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/teimurjan/claude-hooks on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/teimurjan/claude-hooks 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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0fa55fc15f945259fcad073c1262d497eca3256e13b2fcd1afa1360991e517e2
[INFO] running `Command { std: "docker" "start" "-a" "0fa55fc15f945259fcad073c1262d497eca3256e13b2fcd1afa1360991e517e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0fa55fc15f945259fcad073c1262d497eca3256e13b2fcd1afa1360991e517e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0fa55fc15f945259fcad073c1262d497eca3256e13b2fcd1afa1360991e517e2", kill_on_drop: false }`
[INFO] [stdout] 0fa55fc15f945259fcad073c1262d497eca3256e13b2fcd1afa1360991e517e2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5de38a0651953e15926a84c6d30ab6dbd3635b297086b7fc6f96a626eff7052d
[INFO] running `Command { std: "docker" "start" "-a" "5de38a0651953e15926a84c6d30ab6dbd3635b297086b7fc6f96a626eff7052d", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling claude-hooks v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.63s
[INFO] running `Command { std: "docker" "inspect" "5de38a0651953e15926a84c6d30ab6dbd3635b297086b7fc6f96a626eff7052d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5de38a0651953e15926a84c6d30ab6dbd3635b297086b7fc6f96a626eff7052d", kill_on_drop: false }`
[INFO] [stdout] 5de38a0651953e15926a84c6d30ab6dbd3635b297086b7fc6f96a626eff7052d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a3a2b5493cdb4b15f32071454e70a86a43ec95c743359c272b47453987816b3c
[INFO] running `Command { std: "docker" "start" "-a" "a3a2b5493cdb4b15f32071454e70a86a43ec95c743359c272b47453987816b3c", kill_on_drop: false }`
[INFO] [stderr]    Compiling claude-hooks v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.34s
[INFO] running `Command { std: "docker" "inspect" "a3a2b5493cdb4b15f32071454e70a86a43ec95c743359c272b47453987816b3c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a3a2b5493cdb4b15f32071454e70a86a43ec95c743359c272b47453987816b3c", kill_on_drop: false }`
[INFO] [stdout] a3a2b5493cdb4b15f32071454e70a86a43ec95c743359c272b47453987816b3c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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" "+1.95.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5d6f0a404a685c3d92c6097983fedcd7fc3767401993196b3cebca8b8c1ae3d0
[INFO] running `Command { std: "docker" "start" "-a" "5d6f0a404a685c3d92c6097983fedcd7fc3767401993196b3cebca8b8c1ae3d0", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/claude_hooks-0c9223a9c13dda94)
[INFO] [stdout] 
[INFO] [stdout] running 69 tests
[INFO] [stdout] test lifecycle::tests::cost_haiku ... ok
[INFO] [stdout] test lifecycle::tests::cost_opus ... ok
[INFO] [stdout] test lifecycle::tests::cost_sonnet_default ... ok
[INFO] [stdout] test lifecycle::tests::cost_unknown_model_uses_sonnet_rates ... ok
[INFO] [stdout] test lifecycle::tests::cost_zero_tokens ... ok
[INFO] [stdout] test post_tool::tests::edit_format_ignores_empty ... ok
[INFO] [stdout] test post_tool::tests::edit_typecheck_ignores_non_ts ... ok
[INFO] [stdout] test post_tool::tests::edit_format_ignores_non_js_ts ... ok
[INFO] [stdout] test post_tool::tests::build_complete_ignores_other ... ok
[INFO] [stdout] test post_tool::tests::detect_formatter_none ... ok
[INFO] [stdout] test lifecycle::tests::cost_tracker_writes_jsonl ... ok
[INFO] [stdout] test post_tool::tests::console_warn_ignores_non_js_ts ... ok
[INFO] [stdout] test post_tool::tests::build_complete_fires_on_pnpm_build ... ok
[INFO] [stdout] test post_tool::tests::pathdiff_no_common_prefix ... ok
[INFO] [stdout] test post_tool::tests::pathdiff_strips_prefix ... ok
[INFO] [stdout] test post_tool::tests::console_warn_clean_file ... ok
[INFO] [stdout] test post_tool::tests::quality_gate_ignores_empty_path ... ok
[INFO] [stdout] test pre_tool::tests::allows_case_insensitive_doc_names ... ok
[INFO] [stdout] test post_tool::tests::detect_formatter_prettier ... ok
[INFO] [stdout] test post_tool::tests::detect_formatter_biome ... ok
[INFO] [stdout] test post_tool::tests::quality_gate_ignores_missing_file ... ok
[INFO] [stdout] test pre_tool::tests::allows_dev_in_tmux ... ok
[INFO] [stdout] test pre_tool::tests::allows_docs_directory ... ok
[INFO] [stdout] test pre_tool::tests::allows_empty_command ... ok
[INFO] [stdout] test pre_tool::tests::allows_non_doc_files ... ok
[INFO] [stdout] test pre_tool::tests::allows_plan_suffix ... ok
[INFO] [stdout] test pre_tool::tests::allows_skills_and_memory_dirs ... ok
[INFO] [stdout] test post_tool::tests::console_warn_detects_console_log ... ok
[INFO] [stdout] test post_tool::tests::pr_created_ignores_non_pr_commands ... ok
[INFO] [stdout] test pre_tool::tests::allows_claude_paths ... ok
[INFO] [stdout] test pre_tool::tests::allows_standard_doc_names ... ok
[INFO] [stdout] test post_tool::tests::build_complete_fires_on_npm_build ... ok
[INFO] [stdout] test pre_tool::tests::allows_non_dev_commands ... ok
[INFO] [stdout] test pre_tool::tests::doc_warning_allows_readme ... ok
[INFO] [stdout] test pre_tool::tests::doc_warning_ignores_empty_path ... ok
[INFO] [stdout] test post_tool::tests::pr_created_detects_url ... ok
[INFO] [stdout] test pre_tool::tests::blocks_bun_run_dev ... ok
[INFO] [stdout] test pre_tool::tests::blocks_pnpm_run_dev ... ok
[INFO] [stdout] test pre_tool::tests::segments_or_chain ... ok
[INFO] [stdout] test pre_tool::tests::segments_preserves_quotes ... ok
[INFO] [stdout] test pre_tool::tests::blocks_dev_in_chain ... ok
[INFO] [stdout] test pre_tool::tests::segments_and_chain ... ok
[INFO] [stdout] test pre_tool::tests::segments_background ... ok
[INFO] [stdout] test pre_tool::tests::push_reminder_ignores_other_git ... ok
[INFO] [stdout] test pre_tool::tests::segments_empty ... ok
[INFO] [stdout] test pre_tool::tests::segments_simple_semicolon ... ok
[INFO] [stdout] test pre_tool::tests::segments_single_command ... ok
[INFO] [stdout] test pre_tool::tests::rejects_random_md_files ... ok
[INFO] [stdout] test profile::tests::active_profile_defaults_to_standard ... ok
[INFO] [stdout] test profile::tests::active_profile_invalid_falls_back ... ok
[INFO] [stdout] test profile::tests::default_hooks_in_standard_and_strict ... ok
[INFO] [stdout] test profile::tests::lifecycle_hooks_allowed_in_all_profiles ... ok
[INFO] [stdout] test profile::tests::strict_only_hooks ... ok
[INFO] [stdout] test util::tests::get_file_path_missing ... ok
[INFO] [stdout] test util::tests::get_file_path_present ... ok
[INFO] [stdout] test util::tests::get_tool_output_present ... ok
[INFO] [stdout] test util::tests::parse_input_valid_json ... ok
[INFO] [stdout] test util::tests::get_command_missing ... ok
[INFO] [stdout] test util::tests::append_file_creates_and_appends ... ok
[INFO] [stdout] test util::tests::parse_input_invalid_json ... ok
[INFO] [stdout] test util::tests::find_project_root_not_found ... ok
[INFO] [stdout] test pre_tool::tests::doc_warning_warns_on_random_md ... ok
[INFO] [stdout] test util::tests::iso_timestamp_format ... ok
[INFO] [stdout] test util::tests::find_project_root_found ... ok
[INFO] [stdout] test profile::tests::empty_hook_id_always_enabled ... ok
[INFO] [stdout] test pre_tool::tests::push_reminder_fires_on_git_push ... ok
[INFO] [stdout] test pre_tool::tests::blocks_npm_run_dev ... ok
[INFO] [stdout] test pre_tool::tests::blocks_pnpm_dev ... ok
[INFO] [stdout] test pre_tool::tests::blocks_yarn_dev ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 69 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-4c7ec8ebec796b4e)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test binary_build_complete_fires ... ok
[INFO] [stdout] test unknown_hook_passes_through ... ok
[INFO] [stdout] test binary_disabled_hook_passes_through ... ok
[INFO] [stdout] test binary_minimal_profile_skips_standard_hooks ... ok
[INFO] [stdout] test binary_blocks_dev_server ... ok
[INFO] [stdout] test binary_git_push_skipped_in_standard ... ok
[INFO] [stdout] test binary_doc_warning_allows_readme ... ok
[INFO] [stdout] test binary_doc_warning_warns_random_md ... ok
[INFO] [stdout] test no_hook_id_passes_through ... ok
[INFO] [stdout] test binary_git_push_warns_in_strict ... ok
[INFO] [stdout] test binary_allows_non_dev ... ok
[INFO] [stdout] test binary_allows_dev_in_tmux ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "5d6f0a404a685c3d92c6097983fedcd7fc3767401993196b3cebca8b8c1ae3d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5d6f0a404a685c3d92c6097983fedcd7fc3767401993196b3cebca8b8c1ae3d0", kill_on_drop: false }`
[INFO] [stdout] 5d6f0a404a685c3d92c6097983fedcd7fc3767401993196b3cebca8b8c1ae3d0
