[INFO] fetching crate diffguard 0.2.0...
[INFO] testing diffguard-0.2.0 against 1.98.0-beta.1 for beta-1.98-1
[INFO] extracting crate diffguard 0.2.0 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate diffguard 0.2.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate diffguard 0.2.0
[INFO] tweaked toml for crates.io crate diffguard 0.2.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate diffguard 0.2.0 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 crates.io crate diffguard 0.2.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+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] 6b5a5526ade6ed0ec0f2f678253af7e0518f9860ec5d54c61104ffbfaf4ba666
[INFO] running `Command { std: "docker" "start" "6b5a5526ade6ed0ec0f2f678253af7e0518f9860ec5d54c61104ffbfaf4ba666", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6b5a5526ade6ed0ec0f2f678253af7e0518f9860ec5d54c61104ffbfaf4ba666", 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" "6b5a5526ade6ed0ec0f2f678253af7e0518f9860ec5d54c61104ffbfaf4ba666" "/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" "6b5a5526ade6ed0ec0f2f678253af7e0518f9860ec5d54c61104ffbfaf4ba666", 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" "6b5a5526ade6ed0ec0f2f678253af7e0518f9860ec5d54c61104ffbfaf4ba666" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling winnow v1.0.1
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling toml v0.9.12+spec-1.1.0
[INFO] [stderr]    Compiling diffguard-types v0.2.0
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling diffguard-diff v0.2.0
[INFO] [stderr]    Compiling diffguard-domain v0.2.0
[INFO] [stderr]    Compiling diffguard-analytics v0.2.0
[INFO] [stderr]    Compiling diffguard-core v0.2.0
[INFO] [stderr]    Compiling diffguard v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 44.69s
[INFO] running `Command { std: "docker" "inspect" "6b5a5526ade6ed0ec0f2f678253af7e0518f9860ec5d54c61104ffbfaf4ba666", 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" "6b5a5526ade6ed0ec0f2f678253af7e0518f9860ec5d54c61104ffbfaf4ba666" "/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 bstr v1.12.1
[INFO] [stderr]    Compiling assert_cmd v2.2.0
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling fastrand v2.4.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling diffguard-domain v0.2.0
[INFO] [stderr]    Compiling diffguard-core v0.2.0
[INFO] [stderr]    Compiling diffguard v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 23.41s
[INFO] running `Command { std: "docker" "inspect" "6b5a5526ade6ed0ec0f2f678253af7e0518f9860ec5d54c61104ffbfaf4ba666", 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" "6b5a5526ade6ed0ec0f2f678253af7e0518f9860ec5d54c61104ffbfaf4ba666" "/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.21s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/diffguard-28e6d5629299c37f)
[INFO] [stdout] 
[INFO] [stdout] running 113 tests
[INFO] [stdout] [2m2026-07-11T04:47:55.052979Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpz6LTJG/main.toml' (depth 0)
[INFO] [stdout] test config_loader::tests::test_expand_env_error_propagates ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.053076Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'base.toml' relative to '/tmp/.tmpwMXXUr'
[INFO] [stdout] [2m2026-07-11T04:47:55.053077Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'shared-base.toml' relative to '/tmp/.tmpXevZLA'
[INFO] [stdout] [2m2026-07-11T04:47:55.053116Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpwMXXUr/base.toml' (depth 1)
[INFO] [stdout] [2m2026-07-11T04:47:55.053135Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpXevZLA/shared-base.toml' (depth 2)
[INFO] [stdout] [2m2026-07-11T04:47:55.053138Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'base.toml' relative to '/tmp/.tmpz6LTJG'
[INFO] [stdout] [2m2026-07-11T04:47:55.053170Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpz6LTJG/base.toml' (depth 1)
[INFO] [stdout] [2m2026-07-11T04:47:55.053165Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpTFf9HN/main.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.053232Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'base.toml' relative to '/tmp/.tmpTFf9HN'
[INFO] [stdout] [2m2026-07-11T04:47:55.053243Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpomWTGh/bad.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.053265Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpTFf9HN/base.toml' (depth 1)
[INFO] [stdout] [2m2026-07-11T04:47:55.053332Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'team-b.toml' relative to '/tmp/.tmpXevZLA'
[INFO] [stdout] [2m2026-07-11T04:47:55.053370Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpXevZLA/team-b.toml' (depth 1)
[INFO] [stdout] [2m2026-07-11T04:47:55.053477Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'shared-base.toml' relative to '/tmp/.tmpXevZLA'
[INFO] [stdout] test config_loader::tests::test_invalid_toml_returns_error ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.053531Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Reusing cached config for '/tmp/.tmpXevZLA/shared-base.toml' (depth 2)
[INFO] [stdout] test config_loader::tests::test_include_override_by_id ... ok
[INFO] [stdout] test config_loader::tests::test_include_single_file ... ok
[INFO] [stdout] test config_loader::tests::test_include_logging_path_resolution_debug ... ok
[INFO] [stdout] test config_loader::tests::test_merge_configs_keeps_base_defaults_when_other_default ... ok
[INFO] [stdout] test config_loader::tests::test_merge_defaults_field_wise ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.053709Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'a.toml' relative to '/tmp/.tmp5GR3dM'
[INFO] [stdout] [2m2026-07-11T04:47:55.053805Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmp5GR3dM/a.toml' (depth 1)
[INFO] [stdout] [2m2026-07-11T04:47:55.053931Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'b.toml' relative to '/tmp/.tmp5GR3dM'
[INFO] [stdout] [2m2026-07-11T04:47:55.053974Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmp5GR3dM/b.toml' (depth 2)
[INFO] [stdout] [2m2026-07-11T04:47:55.053990Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmp3bIoOY/config.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.054070Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'nonexistent.toml' relative to '/tmp/.tmp3bIoOY'
[INFO] [stdout] [2m2026-07-11T04:47:55.054088Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'main.toml' relative to '/tmp/.tmp5GR3dM'
[INFO] [stdout] test config_loader::tests::test_merge_configs_defaults_override ... ok
[INFO] [stdout] test config_loader::tests::test_dag_includes_same_file_twice ... ok
[INFO] [stdout] test config_loader::tests::test_missing_include_errors ... ok
[INFO] [stdout] test config_loader::tests::test_cycle_detection_still_works ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.054545Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpOv7Kmz/level0.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.054628Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'level1.toml' relative to '/tmp/.tmpOv7Kmz'
[INFO] [stdout] [2m2026-07-11T04:47:55.054658Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpOv7Kmz/level1.toml' (depth 1)
[INFO] [stdout] [2m2026-07-11T04:47:55.054777Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'level2.toml' relative to '/tmp/.tmpOv7Kmz'
[INFO] [stdout] [2m2026-07-11T04:47:55.054816Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpOv7Kmz/level2.toml' (depth 2)
[INFO] [stdout] [2m2026-07-11T04:47:55.054878Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'level3.toml' relative to '/tmp/.tmpOv7Kmz'
[INFO] [stdout] [2m2026-07-11T04:47:55.054911Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpOv7Kmz/level3.toml' (depth 3)
[INFO] [stdout] [2m2026-07-11T04:47:55.054986Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'level4.toml' relative to '/tmp/.tmpOv7Kmz'
[INFO] [stdout] [2m2026-07-11T04:47:55.055021Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpOv7Kmz/level4.toml' (depth 4)
[INFO] [stdout] [2m2026-07-11T04:47:55.055081Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'level5.toml' relative to '/tmp/.tmpOv7Kmz'
[INFO] [stdout] [2m2026-07-11T04:47:55.055144Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpOv7Kmz/level5.toml' (depth 5)
[INFO] [stdout] [2m2026-07-11T04:47:55.055215Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'level6.toml' relative to '/tmp/.tmpOv7Kmz'
[INFO] [stdout] [2m2026-07-11T04:47:55.055255Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpOv7Kmz/level6.toml' (depth 6)
[INFO] [stdout] [2m2026-07-11T04:47:55.055331Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpTYFb6N/a.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.055408Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'b.toml' relative to '/tmp/.tmpTYFb6N'
[INFO] [stdout] [2m2026-07-11T04:47:55.055324Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'level7.toml' relative to '/tmp/.tmpOv7Kmz'
[INFO] [stdout] [2m2026-07-11T04:47:55.055438Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpTYFb6N/b.toml' (depth 1)
[INFO] [stdout] [2m2026-07-11T04:47:55.055450Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpOv7Kmz/level7.toml' (depth 7)
[INFO] [stdout] [2m2026-07-11T04:47:55.055494Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'a.toml' relative to '/tmp/.tmpTYFb6N'
[INFO] [stdout] [2m2026-07-11T04:47:55.055513Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'level8.toml' relative to '/tmp/.tmpOv7Kmz'
[INFO] [stdout] [2m2026-07-11T04:47:55.055547Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpOv7Kmz/level8.toml' (depth 8)
[INFO] [stdout] [2m2026-07-11T04:47:55.055607Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'level9.toml' relative to '/tmp/.tmpOv7Kmz'
[INFO] [stdout] [2m2026-07-11T04:47:55.055637Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpOv7Kmz/level9.toml' (depth 9)
[INFO] [stdout] [2m2026-07-11T04:47:55.055728Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'level10.toml' relative to '/tmp/.tmpOv7Kmz'
[INFO] [stdout] [2m2026-07-11T04:47:55.055761Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpOv7Kmz/level10.toml' (depth 10)
[INFO] [stdout] [2m2026-07-11T04:47:55.055828Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'level11.toml' relative to '/tmp/.tmpOv7Kmz'
[INFO] [stdout] [2m2026-07-11T04:47:55.056001Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpPdzqZD/level1.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.056131Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'level2.toml' relative to '/tmp/.tmpPdzqZD'
[INFO] [stdout] [2m2026-07-11T04:47:55.056167Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpPdzqZD/level2.toml' (depth 1)
[INFO] [stdout] [2m2026-07-11T04:47:55.056280Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Resolving include 'level3.toml' relative to '/tmp/.tmpPdzqZD'
[INFO] [stdout] [2m2026-07-11T04:47:55.056313Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpPdzqZD/level3.toml' (depth 2)
[INFO] [stdout] test config_loader::tests::test_merge_defaults_none_inherits ... ok
[INFO] [stdout] test config_loader::tests::test_circular_include_detected ... ok
[INFO] [stdout] test config_loader::tests::test_include_depth_limit_exceeded ... ok
[INFO] [stdout] test config_loader::tests::test_nested_includes ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.056819Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmptxjgnI/config.toml' (depth 0)
[INFO] [stdout] test presets::tests::test_preset_names ... ok
[INFO] [stdout] test presets::tests::test_preset_descriptions ... ok
[INFO] [stdout] test config_loader::tests::test_simple_config_no_includes ... ok
[INFO] [stdout] test presets::tests::test_rust_quality_preset_generates_valid_toml ... ok
[INFO] [stdout] test presets::tests::test_python_debug_preset_generates_valid_toml ... ok
[INFO] [stdout] test tests::build_tool_error_receipt_uses_defaults_and_sets_reason ... ok
[INFO] [stdout] test tests::build_rule_metadata_includes_help_url_and_tags ... ok
[INFO] [stdout] test tests::build_tool_error_sensor_context_and_report ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.058345Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:55.058368Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpG08OIt/bad.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.058394Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpG08OIt/bad.toml' (depth 0)
[INFO] [stdout] test presets::tests::test_secrets_preset_generates_valid_toml ... ok
[INFO] [stdout] test tests::blame_filters_match_author_and_age ... ok
[INFO] [stdout] test presets::tests::test_js_console_preset_generates_valid_toml ... ok
[INFO] [stdout] test presets::tests::test_minimal_preset_generates_valid_toml ... ok
[INFO] [stdout] test presets::tests::test_all_presets_have_defaults ... ok
[INFO] [stdout] test tests::cmd_check_cockpit_catastrophic_failure_when_writes_fail ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.139052Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:55.140724Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpNw8OpL/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.141001Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpNw8OpL/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.180419Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.183720Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Check parameters: scope=Added, fail_on=Error, max_findings=200, diff_context=0
[INFO] [stdout] [2m2026-07-11T04:47:55.184747Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Checking diff: missing-ref...HEAD
[INFO] [stdout] [2m2026-07-11T04:47:55.188391Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:55.188493Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmp904W9F/bad.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.191915Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmp904W9F/bad.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.216999Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] test tests::cmd_check_cockpit_skip_and_tool_error_paths ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.218301Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m No config file found, using built-in rules
[INFO] [stdout] [2m2026-07-11T04:47:55.218530Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Check parameters: scope=Added, fail_on=Error, max_findings=200, diff_context=0
[INFO] [stdout] [2m2026-07-11T04:47:55.218602Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Checking staged changes
[INFO] [stdout] [2m2026-07-11T04:47:55.223261Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] test tests::cmd_check_cockpit_skip_fails_to_write_receipts ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.223752Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m No config file found, using built-in rules
[INFO] [stdout] [2m2026-07-11T04:47:55.223858Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Check parameters: scope=Added, fail_on=Error, max_findings=200, diff_context=0
[INFO] [stdout] [2m2026-07-11T04:47:55.223879Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Checking staged changes
[INFO] [stdout] test tests::cmd_check_cockpit_skip_sensor_json_error_falls_back_to_out ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.268665Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:55.268943Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpBA62SH/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.269003Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpBA62SH/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.276256Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.276506Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Check parameters: scope=Added, fail_on=Error, max_findings=200, diff_context=0
[INFO] [stdout] [2m2026-07-11T04:47:55.276537Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Checking diff: missing-ref...HEAD
[INFO] [stdout] test tests::cmd_check_cockpit_skip_writes_sensor_report ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.285124Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:55.285182Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m No config file found, using built-in rules
[INFO] [stdout] [2m2026-07-11T04:47:55.285304Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Check parameters: scope=Added, fail_on=Error, max_findings=200, diff_context=0
[INFO] [stdout] [2m2026-07-11T04:47:55.285334Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Checking staged changes
[INFO] [stdout] [2m2026-07-11T04:47:55.289145Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:55.289187Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpvC5vrl/missing.toml
[INFO] [stdout] test tests::cmd_check_inner_staged_error_maps_to_skip ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.289726Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:55.289754Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpMFnzsH/missing.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.290344Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:55.290393Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpwgpKM8/diffguard.toml
[INFO] [stdout] test tests::cmd_check_cockpit_tool_error_writes_receipt_when_sensor_fails ... [2m2026-07-11T04:47:55.290433Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpwgpKM8/diffguard.toml' (depth 0)
[INFO] [stdout] ok
[INFO] [stdout] test tests::cmd_check_cockpit_tool_error_without_sensor_writes_receipt ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.290752Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpUPU0ty/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.290788Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpUPU0ty/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.298160Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.298212Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpUPU0ty/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.298241Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpUPU0ty/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.311714Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] test tests::cmd_explain_found_and_missing ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.333726Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpKU7dCm/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.333795Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpKU7dCm/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.342132Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.342183Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Check parameters: scope=Added, fail_on=Warn, max_findings=200, diff_context=0
[INFO] [stdout] [2m2026-07-11T04:47:55.342203Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Checking diff: 8d660705f21ea41f8c82f70d4e30762971ae1d87...d4400be2041012db2eb3913a676bc1300b537da7
[INFO] [stdout] [2m2026-07-11T04:47:55.345563Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Diff text length: 426 bytes
[INFO] [stdout] [2m2026-07-11T04:47:55.345972Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.346244Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Check complete: 1 findings, 0 false-positive filtered, verdict=Warn
[INFO] [stdout] [2m2026-07-11T04:47:55.346719Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:55.346742Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpFmmwig/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.346774Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpFmmwig/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.354014Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.354059Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Language override: rust
[INFO] [stdout] [2m2026-07-11T04:47:55.354071Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Check parameters: scope=Added, fail_on=Error, max_findings=200, diff_context=0
[INFO] [stdout] [2m2026-07-11T04:47:55.354094Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Reading unified diff from file: /tmp/.tmpFmmwig/input.diff
[INFO] [stdout] [2m2026-07-11T04:47:55.354144Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Diff text length: 129 bytes
[INFO] [stdout] [2m2026-07-11T04:47:55.354422Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.354610Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Check complete: 1 findings, 0 false-positive filtered, verdict=Warn
[INFO] [stdout] [2m2026-07-11T04:47:55.355060Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:55.355086Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmp6kkmHq/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.355116Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmp6kkmHq/diffguard.toml' (depth 0)
[INFO] [stdout] test tests::cmd_check_inner_reads_diff_file_and_applies_language_override ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.358233Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpvM5hGy/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.358278Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpvM5hGy/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.367108Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.367156Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Check parameters: scope=Added, fail_on=Error, max_findings=200, diff_context=0
[INFO] [stdout] [2m2026-07-11T04:47:55.367175Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Checking staged changes
[INFO] [stdout] [2m2026-07-11T04:47:55.372093Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] test tests::cmd_explain_suggests_similar_rules ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.373355Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Diff text length: 426 bytes
[INFO] [stdout] [2m2026-07-11T04:47:55.373714Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.373949Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Check complete: 1 findings, 0 false-positive filtered, verdict=Warn
[INFO] [stdout] [2m2026-07-11T04:47:55.374813Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:55.374836Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpohfcO2/missing.toml
[INFO] [stdout] test tests::cmd_check_cockpit_tool_error_sensor_json_error_falls_back_to_out ... ok
[INFO] [stdout] test tests::cmd_init_with_io_empty_path_errors ... ok
[INFO] [stdout] test tests::cmd_init_with_io_force_writes_file ... ok
[INFO] [stdout] test tests::cmd_init_with_io_no_parent_path ... ok
[INFO] [stdout] test tests::cmd_init_with_io_respects_overwrite_prompt ... ok
[INFO] [stdout] test tests::cmd_init_with_io_overwrites_when_confirmed ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.377830Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:55.377855Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpP1H3EG/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.377889Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpP1H3EG/diffguard.toml' (depth 0)
[INFO] [stdout] test tests::cmd_renderers_write_outputs ... ok
[INFO] [stdout] test tests::cmd_renderers_stdout_and_tsv ... ok
[INFO] [stdout] test tests::cmd_check_inner_handles_staged_diff ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.379970Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Running rule test cases
[INFO] [stdout] [2m2026-07-11T04:47:55.379995Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpcbw8fw/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.380023Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpcbw8fw/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.380841Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Running rule test cases
[INFO] [stdout] [2m2026-07-11T04:47:55.380866Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpd0AC1w/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.380895Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpd0AC1w/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.380893Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpauTeG6/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.380921Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpauTeG6/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.387232Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.387550Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Running rule test cases
[INFO] [stdout] [2m2026-07-11T04:47:55.387567Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpcbw8fw/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.387591Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpcbw8fw/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.394184Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.398316Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] test tests::cmd_explain_missing_rule_without_suggestions ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.399878Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Running rule test cases
[INFO] [stdout] [2m2026-07-11T04:47:55.399911Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmp6fE4vc/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.399942Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmp6fE4vc/diffguard.toml' (depth 0)
[INFO] [stdout] test tests::cmd_test_json_success_and_failure ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.400853Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Running rule test cases
[INFO] [stdout] [2m2026-07-11T04:47:55.400879Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpaIztnQ/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.400904Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpaIztnQ/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.413760Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.413901Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] test tests::cmd_test_no_cases_json ... ok
[INFO] [stdout] test tests::cmd_test_no_cases_text ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.414897Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Running rule test cases
[INFO] [stdout] [2m2026-07-11T04:47:55.414932Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmptw3dVZ/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.414935Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.414964Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Check parameters: scope=Added, fail_on=Error, max_findings=200, diff_context=0
[INFO] [stdout] [2m2026-07-11T04:47:55.414968Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmptw3dVZ/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.414991Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Checking multi-base diff against 2 base refs: 8d660705f21ea41f8c82f70d4e30762971ae1d87, 8d660705f21ea41f8c82f70d4e30762971ae1d87
[INFO] [stdout] [2m2026-07-11T04:47:55.415009Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Checking diff: 8d660705f21ea41f8c82f70d4e30762971ae1d87...d4400be2041012db2eb3913a676bc1300b537da7
[INFO] [stdout] [2m2026-07-11T04:47:55.415854Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Running rule test cases
[INFO] [stdout] [2m2026-07-11T04:47:55.415880Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpsPecVW/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.415909Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpsPecVW/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.421993Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.423737Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Checking diff: 8d660705f21ea41f8c82f70d4e30762971ae1d87...d4400be2041012db2eb3913a676bc1300b537da7
[INFO] [stdout] test tests::cmd_test_compile_error_records_failures ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.431535Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Running rule test cases
[INFO] [stdout] [2m2026-07-11T04:47:55.431590Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmp0H0Vr7/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.431624Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmp0H0Vr7/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.438455Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Diff text length: 853 bytes
[INFO] [stdout] [2m2026-07-11T04:47:55.438932Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.439204Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Check complete: 1 findings, 0 false-positive filtered, verdict=Warn
[INFO] [stdout] [2m2026-07-11T04:47:55.439621Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:55.439653Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpg0RkHq/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.439699Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpg0RkHq/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.442048Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 0 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.442981Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.445321Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 2 rule(s) from config
[INFO] [stdout] test tests::cmd_check_inner_multi_base_dedupes_findings ... ok
[INFO] [stdout] test tests::cmd_test_no_rules_defined_errors ... ok
[INFO] [stdout] test tests::cmd_rules_json_renders ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.457097Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Running rule test cases
[INFO] [stdout] [2m2026-07-11T04:47:55.457146Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpL21cqJ/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.457182Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpL21cqJ/diffguard.toml' (depth 0)
[INFO] [stdout] test tests::cmd_test_text_failure_outputs_details ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.458641Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.458689Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Check parameters: scope=Added, fail_on=Error, max_findings=200, diff_context=0
[INFO] [stdout] [2m2026-07-11T04:47:55.458718Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Checking diff: 8d660705f21ea41f8c82f70d4e30762971ae1d87...d4400be2041012db2eb3913a676bc1300b537da7
[INFO] [stdout] [2m2026-07-11T04:47:55.458751Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Running rule test cases
[INFO] [stdout] [2m2026-07-11T04:47:55.458778Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpDXwW2m/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.458805Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpDXwW2m/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.465280Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] test tests::cmd_test_text_failures_with_empty_and_missing_description ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.466598Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Validating configuration file
[INFO] [stdout] [2m2026-07-11T04:47:55.466630Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpE59mfN/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.474602Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Validating rule: bad.rule
[INFO] [stdout] test tests::cmd_validate_json_reports_errors ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.484942Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Diff text length: 426 bytes
[INFO] [stdout] [2m2026-07-11T04:47:55.485342Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.485598Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Check complete: 1 findings, 0 false-positive filtered, verdict=Warn
[INFO] [stdout] [2m2026-07-11T04:47:55.485941Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:55.485960Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpwgpKM8/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.485986Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpwgpKM8/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.494689Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.494888Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Check parameters: scope=Added, fail_on=Warn, max_findings=200, diff_context=0
[INFO] [stdout] [2m2026-07-11T04:47:55.495258Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loaded 1 false-positive fingerprints from /tmp/.tmpwgpKM8/artifacts/diffguard/false-positives.json
[INFO] [stdout] [2m2026-07-11T04:47:55.495288Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Checking diff: 8d660705f21ea41f8c82f70d4e30762971ae1d87...d4400be2041012db2eb3913a676bc1300b537da7
[INFO] [stdout] [2m2026-07-11T04:47:55.505964Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Diff text length: 426 bytes
[INFO] [stdout] [2m2026-07-11T04:47:55.506870Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.507179Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Check complete: 0 findings, 1 false-positive filtered, verdict=Pass
[INFO] [stdout] [2m2026-07-11T04:47:55.509625Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:55.509734Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpcem5PH/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.510189Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpcem5PH/diffguard.toml' (depth 0)
[INFO] [stdout] test tests::cmd_check_inner_applies_false_positive_baseline ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.534755Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Validating configuration file
[INFO] [stdout] [2m2026-07-11T04:47:55.534805Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpi5DQas/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.542848Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.543028Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Language override: rust
[INFO] [stdout] [2m2026-07-11T04:47:55.543051Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Check parameters: scope=Added, fail_on=Error, max_findings=200, diff_context=0
[INFO] [stdout] [2m2026-07-11T04:47:55.543072Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Checking diff: 8d660705f21ea41f8c82f70d4e30762971ae1d87...d4400be2041012db2eb3913a676bc1300b537da7
[INFO] [stdout] [2m2026-07-11T04:47:55.554203Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:55.556786Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Diff text length: 426 bytes
[INFO] [stdout] test tests::cmd_test_rule_filter_missing ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.560062Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Validating configuration file
[INFO] [stdout] [2m2026-07-11T04:47:55.560096Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmplWxea8/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.561139Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.561187Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/Tests/**")` converted to regex: `"(?-u)^(?:/?|.*/)Tests/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.561206Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/*.Tests/**")` converted to regex: `"(?-u)^(?:/?|.*/).*\\.Tests/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.561222Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 2 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.562938Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Validating rule: warn.rule
[INFO] [stdout] test tests::cmd_validate_reports_invalid_globs_and_strict_warnings ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.574240Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] test tests::cmd_test_text_success_no_failures ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.577150Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Validating rule: dup.rule
[INFO] [stdout] [2m2026-07-11T04:47:55.577236Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Validating rule: dup.rule
[INFO] [stdout] test tests::cockpit_error_classification_and_detail ... ok
[INFO] [stdout] test tests::cmd_validate_text_reports_errors_and_warnings ... ok
[INFO] [stdout] test tests::collect_override_candidates_walks_ancestor_directories ... ok
[INFO] [stdout] test tests::confirm_overwrite_parses_input ... ok
[INFO] [stdout] test tests::confirm_overwrite_propagates_flush_error ... ok
[INFO] [stdout] test tests::confirm_overwrite_accepts_yes_variants ... ok
[INFO] [stdout] test tests::fail_on_arg_converts_to_fail_on ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.594069Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.598766Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 1 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] test tests::confirm_overwrite_rejects_default_or_no ... ok
[INFO] [stdout] test tests::find_similar_rules_contains_match ... ok
[INFO] [stdout] test tests::find_similar_rules_edit_distance_match ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.601489Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpgPGtRc/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:55.601540Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpgPGtRc/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:55.612031Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] test tests::find_similar_rules_uses_edit_distance ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.616441Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.620740Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 1 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.631298Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.633460Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/test/**")` converted to regex: `"(?-u)^(?:/?|.*/)test/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.633644Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/tests/**")` converted to regex: `"(?-u)^(?:/?|.*/)tests/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.633783Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 2 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.635560Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 4 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.639751Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/tests/**")` converted to regex: `"(?-u)^(?:/?|.*/)tests/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.643727Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/*.test.*")` converted to regex: `"(?-u)^(?:/?|.*/).*\\.test\\..*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.643923Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/*.spec.*")` converted to regex: `"(?-u)^(?:/?|.*/).*\\.spec\\..*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.644293Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 3 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.650780Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 4 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.690289Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 4 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.690421Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/*test*")` converted to regex: `"(?-u)^(?:/?|.*/).*test.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.690460Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.703893Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 2 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.704041Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/test/**")` converted to regex: `"(?-u)^(?:/?|.*/)test/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.704122Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/tests/**")` converted to regex: `"(?-u)^(?:/?|.*/)tests/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.704171Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 2 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.711418Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.711712Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/*test*")` converted to regex: `"(?-u)^(?:/?|.*/).*test.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.711877Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.724905Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.743441Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.744724Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/*test*")` converted to regex: `"(?-u)^(?:/?|.*/).*test.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.744798Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.767863Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.775923Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.776064Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/tests/**")` converted to regex: `"(?-u)^(?:/?|.*/)tests/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.776136Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 1 required extensions, 1 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.793575Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 2 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.793729Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/test/**")` converted to regex: `"(?-u)^(?:/?|.*/)test/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.793796Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/spec/**")` converted to regex: `"(?-u)^(?:/?|.*/)spec/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.793847Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 2 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.798765Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 2 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.798874Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/test/**")` converted to regex: `"(?-u)^(?:/?|.*/)test/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.798937Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/spec/**")` converted to regex: `"(?-u)^(?:/?|.*/)spec/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.798994Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 2 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.805132Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 2 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.805463Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/*test*")` converted to regex: `"(?-u)^(?:/?|.*/).*test.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.805633Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/spec/**")` converted to regex: `"(?-u)^(?:/?|.*/)spec/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.805717Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 2 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.821644Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.822888Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/tests/**")` converted to regex: `"(?-u)^(?:/?|.*/)tests/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.823355Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/benches/**")` converted to regex: `"(?-u)^(?:/?|.*/)benches/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.824706Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/examples/**")` converted to regex: `"(?-u)^(?:/?|.*/)examples/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.825132Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 3 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.848183Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.849210Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.849640Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/tests/**")` converted to regex: `"(?-u)^(?:/?|.*/)tests/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.850108Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/benches/**")` converted to regex: `"(?-u)^(?:/?|.*/)benches/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.850521Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/examples/**")` converted to regex: `"(?-u)^(?:/?|.*/)examples/.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.850968Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 3 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.865854Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/README*")` converted to regex: `"(?-u)^(?:/?|.*/)README.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.867713Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/CHANGELOG*")` converted to regex: `"(?-u)^(?:/?|.*/)CHANGELOG.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.868230Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 2 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.872195Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/README*")` converted to regex: `"(?-u)^(?:/?|.*/)README.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.872886Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.878633Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/README*")` converted to regex: `"(?-u)^(?:/?|.*/)README.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.878749Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/*test*")` converted to regex: `"(?-u)^(?:/?|.*/).*test.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.878797Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 2 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.879641Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/README*")` converted to regex: `"(?-u)^(?:/?|.*/)README.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.879730Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.886899Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/README*")` converted to regex: `"(?-u)^(?:/?|.*/)README.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.887021Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/*.example*")` converted to regex: `"(?-u)^(?:/?|.*/).*\\.example.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.887105Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/*test*")` converted to regex: `"(?-u)^(?:/?|.*/).*test.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.887157Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 3 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.888384Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/README*")` converted to regex: `"(?-u)^(?:/?|.*/)README.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.889708Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.893513Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/README*")` converted to regex: `"(?-u)^(?:/?|.*/)README.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.893708Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.906027Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/README*")` converted to regex: `"(?-u)^(?:/?|.*/)README.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.906164Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.919598Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/README*")` converted to regex: `"(?-u)^(?:/?|.*/)README.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.919750Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.924691Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/README*")` converted to regex: `"(?-u)^(?:/?|.*/)README.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.924817Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.932582Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/README*")` converted to regex: `"(?-u)^(?:/?|.*/)README.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.933134Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/*test*")` converted to regex: `"(?-u)^(?:/?|.*/).*test.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.933347Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/Dockerfile*")` converted to regex: `"(?-u)^(?:/?|.*/)Dockerfile.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.933537Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 3 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.942911Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/README*")` converted to regex: `"(?-u)^(?:/?|.*/)README.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.943030Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/*test*")` converted to regex: `"(?-u)^(?:/?|.*/).*test.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.943106Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/localhost*")` converted to regex: `"(?-u)^(?:/?|.*/)localhost.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.943169Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 3 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.962162Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/*test*")` converted to regex: `"(?-u)^(?:/?|.*/).*test.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.962741Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.969665Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 3 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.969800Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m glob `Glob("**/*test*")` converted to regex: `"(?-u)^(?:/?|.*/).*test.*$"`
[INFO] [stdout] [2m2026-07-11T04:47:55.969874Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.973309Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:55.977903Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Check complete: 1 findings, 0 false-positive filtered, verdict=Warn
[INFO] [stdout] [2m2026-07-11T04:47:55.981263Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Validating configuration file
[INFO] [stdout] [2m2026-07-11T04:47:55.981803Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpzW2FaJ/diffguard.toml
[INFO] [stdout] test tests::cmd_check_inner_writes_outputs ... ok
[INFO] [stdout] test tests::load_false_positive_baseline_missing_returns_empty ... ok
[INFO] [stdout] test tests::load_false_positive_baseline_rejects_wrong_schema ... ok
[INFO] [stdout] test tests::merge_with_built_in_overrides_by_id ... ok
[INFO] [stdout] test tests::parse_blame_porcelain_extracts_line_metadata ... ok
[INFO] [stdout] test tests::resolve_extras_paths_keeps_custom_paths ... ok
[INFO] [stdout] test tests::resolve_extras_paths_rewrites_defaults_in_cockpit_mode ... ok
[INFO] [stdout] [2m2026-07-11T04:47:55.999063Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Validating rule: ok.rule
[INFO] [stdout] [2m2026-07-11T04:47:55.999323Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 1 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:56.000541Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 0 extensions, 1 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:56.002042Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Validating configuration file
[INFO] [stdout] test tests::cmd_validate_accepts_valid_globs_and_strict_no_warnings ... ok
[INFO] [stdout] [2m2026-07-11T04:47:56.003365Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpIQstcr/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:56.013357Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Validating rule: ok.rule
[INFO] [stdout] [2m2026-07-11T04:47:56.015332Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Validating configuration file
[INFO] [stdout] [2m2026-07-11T04:47:56.015861Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Starting diffguard check
[INFO] [stdout] [2m2026-07-11T04:47:56.015878Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpg0RkHq/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:56.015901Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpg0RkHq/diffguard.toml' (depth 0)
[INFO] [stdout] test tests::cmd_validate_forced_compile_error ... ok
[INFO] [stdout] test tests::resolve_out_path_respects_mode_and_sensor ... ok
[INFO] [stdout] test tests::cmd_validate_missing_config_errors ... ok
[INFO] [stdout] [2m2026-07-11T04:47:56.024234Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Logging initialized at level: info
[INFO] [stdout] [2m2026-07-11T04:47:56.024269Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpmKWAgl/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:56.024298Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpmKWAgl/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:56.028553Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Logging initialized at level: warn
[INFO] [stdout] [2m2026-07-11T04:47:56.028585Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmp1ncq9z/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:56.028610Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmp1ncq9z/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:56.033310Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:56.035703Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Check parameters: scope=Added, fail_on=Error, max_findings=200, diff_context=0
[INFO] [stdout] [2m2026-07-11T04:47:56.036201Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Checking diff: 8d660705f21ea41f8c82f70d4e30762971ae1d87...d4400be2041012db2eb3913a676bc1300b537da7
[INFO] [stdout] [2m2026-07-11T04:47:56.038390Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:56.039848Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Logging initialized at level: debug
[INFO] [stdout] [2m2026-07-11T04:47:56.040261Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpmKWAgl/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:56.040723Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpmKWAgl/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:56.044729Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Diff text length: 426 bytes
[INFO] [stdout] [2m2026-07-11T04:47:56.045137Z[0m [34mDEBUG[0m [2mglobset[0m[2m:[0m built glob set; 0 literals, 0 basenames, 1 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[INFO] [stdout] [2m2026-07-11T04:47:56.045409Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Check complete: 1 findings, 0 false-positive filtered, verdict=Warn
[INFO] [stdout] [2m2026-07-11T04:47:56.045891Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Validating configuration file
[INFO] [stdout] [2m2026-07-11T04:47:56.045929Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loading config from: diffguard.toml
[INFO] [stdout] test tests::cmd_check_standard_and_cockpit_success ... ok
[INFO] [stdout] [2m2026-07-11T04:47:56.053424Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Logging initialized at level: warn
[INFO] [stdout] [2m2026-07-11T04:47:56.053457Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Running rule test cases
[INFO] [stdout] [2m2026-07-11T04:47:56.053469Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmpJpOXWY/diffguard.toml
[INFO] [stdout] [2m2026-07-11T04:47:56.053496Z[0m [34mDEBUG[0m [2mdiffguard::config_loader[0m[2m:[0m Loading config from '/tmp/.tmpJpOXWY/diffguard.toml' (depth 0)
[INFO] [stdout] [2m2026-07-11T04:47:56.055861Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Validating rule: warn.rule
[INFO] [stdout] test tests::cmd_validate_uses_default_config_path_and_strict_warnings ... ok
[INFO] [stdout] [2m2026-07-11T04:47:56.057606Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Logging initialized at level: warn
[INFO] [stdout] test tests::run_with_args_dispatches_trend_command ... ok
[INFO] [stdout] test tests::scope_arg_converts_to_scope ... ok
[INFO] [stdout] test tests::simple_edit_distance_handles_empty_rhs ... ok
[INFO] [stdout] [2m2026-07-11T04:47:56.065073Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Env var ${DIFFGUARD_TEST_EMPTY} not set, using default: 
[INFO] [stdout] test tests::test_expand_env_vars_empty_default ... ok
[INFO] [stdout] test tests::git_staged_diff_errors_outside_repo ... ok
[INFO] [stdout] [2m2026-07-11T04:47:56.072079Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Expanded env var ${DIFFGUARD_TEST_VAR}
[INFO] [stdout] test tests::test_expand_env_vars_from_environment ... ok
[INFO] [stdout] [2m2026-07-11T04:47:56.073191Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:56.078048Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Logging initialized at level: warn
[INFO] [stdout] [2m2026-07-11T04:47:56.078073Z[0m [32m INFO[0m [2mdiffguard[0m[2m:[0m Validating configuration file
[INFO] [stdout] [2m2026-07-11T04:47:56.078084Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loading config from: /tmp/.tmp1ncq9z/diffguard.toml
[INFO] [stdout] test tests::load_directory_overrides_for_diff_loads_root_then_deeper_overrides ... ok
[INFO] [stdout] test tests::test_expand_env_vars_missing_no_default ... ok
[INFO] [stdout] test tests::resolve_mode_ignores_invalid_env ... ok
[INFO] [stdout] test tests::resolve_mode_prefers_env_over_args ... ok
[INFO] [stdout] test tests::test_find_similar_rules_exact_prefix ... ok
[INFO] [stdout] test tests::test_find_similar_rules_typo ... ok
[INFO] [stdout] test tests::test_format_rule_explanation_basic ... ok
[INFO] [stdout] test tests::test_format_rule_explanation_minimal ... ok
[INFO] [stdout] test tests::test_language_arg_as_str ... ok
[INFO] [stdout] test tests::test_simple_edit_distance ... ok
[INFO] [stdout] [2m2026-07-11T04:47:56.089964Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] [2m2026-07-11T04:47:56.090549Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Env var ${DIFFGUARD_TEST_A} not set, using default: foo
[INFO] [stdout] [2m2026-07-11T04:47:56.090598Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Env var ${DIFFGUARD_TEST_B} not set, using default: bar
[INFO] [stdout] test tests::run_with_args_dispatches_rules_verbose_and_debug ... ok
[INFO] [stdout] test tests::test_expand_env_vars_multiple ... ok
[INFO] [stdout] test tests::write_json_and_text_create_parent_dirs ... ok
[INFO] [stdout] test tests::write_json_and_text_with_no_parent_errors ... ok
[INFO] [stdout] [2m2026-07-11T04:47:56.093056Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Validating rule: test.rule
[INFO] [stdout] [2m2026-07-11T04:47:56.093975Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Logging initialized at level: warn
[INFO] [stdout] [2m2026-07-11T04:47:56.094562Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Env var ${DIFFGUARD_TEST_UNLIKELY_VAR} not set, using default: 8080
[INFO] [stdout] test tests::test_expand_env_vars_with_default ... ok
[INFO] [stdout] [2m2026-07-11T04:47:56.094940Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Logging initialized at level: warn
[INFO] [stdout] test tests::write_json_and_text_without_parent ... ok
[INFO] [stdout] [2m2026-07-11T04:47:56.095746Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Logging initialized at level: warn
[INFO] [stdout] [2m2026-07-11T04:47:56.096468Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Logging initialized at level: warn
[INFO] [stdout] test tests::run_with_args_dispatches_additional_commands ... ok
[INFO] [stdout] test tests::test_expand_env_vars_no_vars ... ok
[INFO] [stdout] [2m2026-07-11T04:47:56.110566Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Loaded 1 rule(s) from config
[INFO] [stdout] test tests::run_with_args_dispatches_test_command ... ok
[INFO] [stdout] [2m2026-07-11T04:47:56.116414Z[0m [34mDEBUG[0m [2mdiffguard[0m[2m:[0m Env var ${DIFFGUARD_TEST_X} not set, using default: default
[INFO] [stdout] test tests::test_expand_env_vars_preserves_other_syntax ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 113 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stderr]      Running tests/cli_check.rs (/opt/rustwide/target/debug/deps/cli_check-4630f746ef37b3c1)
[INFO] [stdout] test fails_on_unwrap_by_default ... ok
[INFO] [stderr]      Running tests/cli_init.rs (/opt/rustwide/target/debug/deps/cli_init-c8612b450287ccff)
[INFO] [stdout] test warnings_do_not_fail_by_default_but_can ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.45s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test init_creates_config_with_js_console_preset ... ok
[INFO] [stdout] test init_creates_config_with_rust_quality_preset ... ok
[INFO] [stdout] test init_overwrites_with_force_flag ... ok
[INFO] [stdout] test init_creates_config_with_python_debug_preset ... ok
[INFO] [stdout] test init_creates_default_config ... ok
[INFO] [stdout] test init_creates_config_with_secrets_preset ... ok
[INFO] [stdout] test init_prints_helpful_message ... ok
[INFO] [stdout] test init_refuses_to_overwrite_without_force ... ok
[INFO] [stdout] test init_short_flags_work ... ok
[INFO] [stdout] test init_with_custom_output_path ... ok
[INFO] [stderr]      Running tests/cli_misc.rs (/opt/rustwide/target/debug/deps/cli_misc-463d70e85c86ff71)
[INFO] [stdout] test init_generated_config_is_valid_toml ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test test_command_exits_nonzero_on_failure ... ok
[INFO] [stdout] test explain_outputs_rule_details ... ok
[INFO] [stdout] test sarif_junit_csv_render_from_receipt ... ok
[INFO] [stdout] test validate_without_config_errors ... ok
[INFO] [stdout] test explain_unknown_rule_suggests_similar ... ok
[INFO] [stdout] test validate_strict_reports_warnings_but_succeeds ... ok
[INFO] [stdout] test rules_outputs_toml_and_json ... ok
[INFO] [stdout] test validate_json_reports_errors ... ok
[INFO] [stdout] test test_command_reports_results_in_json ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-32afe61742b8ef7b)
[INFO] [stdout] 
[INFO] [stdout] running 56 tests
[INFO] [stdout] test base_only_unchanged::given_unwrap_in_context_when_nearby_change_then_not_flagged ... ok
[INFO] [stdout] test config_file_loading::given_custom_config_path_when_check_then_loaded ... ok
[INFO] [stdout] test base_only_unchanged::given_unwrap_only_in_base_when_check_then_pass ... ok
[INFO] [stdout] test base_only_unchanged::given_no_changes_when_check_then_pass ... ok
[INFO] [stdout] test base_only_unchanged::given_unwrap_in_base_when_other_file_changed_then_pass ... ok
[INFO] [stdout] test config_file_loading::given_config_with_path_filter_when_check_then_filter_applied ... ok
[INFO] [stdout] test config_file_loading::given_no_default_rules_flag_when_check_then_only_custom_rules ... ok
[INFO] [stdout] test config_file_loading::given_invalid_config_when_check_then_tool_error ... ok
[INFO] [stdout] test base_only_unchanged::given_deletion_only_when_check_then_pass ... ok
[INFO] [stdout] test config_file_loading::given_custom_config_overrides_builtin_when_check_then_override_applied ... ok
[INFO] [stdout] test config_file_loading::given_config_with_exclude_paths_when_check_then_excludes_applied ... ok
[INFO] [stdout] test diff_only_scoping::given_line_changed_to_unwrap_when_scope_changed_then_finding_reported ... ok
[INFO] [stdout] test diff_only_scoping::given_clean_code_added_when_check_then_pass ... ok
[INFO] [stdout] test config_file_loading::given_custom_config_when_check_then_custom_rules_applied ... ok
[INFO] [stdout] test directory_overrides::given_directory_rule_disable_when_check_then_subtree_is_skipped ... ok
[INFO] [stdout] test directory_overrides::given_directory_severity_override_when_check_then_effective_severity_changes ... ok
[INFO] [stdout] test diff_only_scoping::given_unwrap_added_when_check_then_finding_reported ... ok
[INFO] [stdout] test config_file_loading::given_default_config_file_when_check_then_auto_loaded ... ok
[INFO] [stdout] test directory_overrides::given_parent_disable_and_child_enable_when_check_then_child_override_wins ... ok
[INFO] [stdout] test diff_only_scoping::given_line_changed_to_unwrap_when_scope_modified_then_finding_reported ... ok
[INFO] [stdout] test diff_only_scoping::given_multiple_unwraps_added_when_check_then_all_findings_reported ... ok
[INFO] [stdout] test diff_only_scoping::given_new_file_with_unwrap_when_check_then_finding_reported ... ok
[INFO] [stdout] test diff_only_scoping::given_unwrap_removed_when_scope_deleted_then_finding_reported ... ok
[INFO] [stdout] test missing_base_shallow_clone::given_invalid_head_sha_when_check_then_tool_error ... ok
[INFO] [stdout] test max_findings_cap::given_many_violations_when_default_limit_then_all_included ... ok
[INFO] [stdout] test max_findings_cap::given_cli_max_findings_1_when_multiple_violations_then_1_finding ... ok
[INFO] [stdout] test max_findings_cap::given_max_findings_2_when_5_violations_then_2_findings_but_5_in_counts ... ok
[INFO] [stdout] test missing_base_shallow_clone::given_missing_base_sha_when_check_then_tool_error ... ok
[INFO] [stdout] test missing_base_shallow_clone::given_truncated_sha_when_check_then_error_or_resolves ... ok
[INFO] [stdout] test max_findings_cap::given_mixed_severities_when_max_findings_2_then_counts_accurate ... ok
[INFO] [stdout] test missing_base_shallow_clone::given_invalid_ref_name_when_check_then_tool_error ... ok
[INFO] [stdout] test max_findings_cap::given_violations_in_multiple_files_when_max_findings_3_then_3_total ... ok
[INFO] [stdout] test max_findings_cap::given_truncation_when_check_then_reason_mentions_omitted ... ok
[INFO] [stdout] test missing_base_shallow_clone::given_valid_short_sha_when_check_then_works ... ok
[INFO] [stdout] test multiple_file_types::given_jsx_tsx_files_when_check_then_js_rules_apply ... ok
[INFO] [stdout] test multiple_file_types::given_js_debugger_when_check_then_error ... ok
[INFO] [stdout] test multiple_file_types::given_go_file_when_check_then_go_rules_apply ... ok
[INFO] [stdout] test multiple_file_types::given_mixed_severities_across_languages_when_check_then_correct_counts ... ok
[INFO] [stdout] test multiple_file_types::given_multi_language_diff_when_check_then_language_rules_apply ... ok
[INFO] [stdout] test multiple_file_types::given_python_pdb_when_check_then_error ... ok
[INFO] [stdout] test multiple_file_types::given_rust_file_with_js_pattern_when_check_then_js_rule_not_applied ... ok
[INFO] [stdout] test suppression_directive::given_real_unwrap_with_comment_when_check_then_still_flagged ... ok
[INFO] [stdout] test suppression_directive::given_suppression_comment_when_check_then_finding_suppressed ... ok
[INFO] [stdout] test multiple_file_types::given_typescript_file_when_check_then_js_rules_apply ... ok
[INFO] [stdout] test multiple_file_types::given_test_file_when_check_then_excluded_by_default ... ok
[INFO] [stdout] test suppression_directive::given_unwrap_in_comment_when_check_then_not_flagged ... ok
[INFO] [stdout] test multiple_file_types::given_unknown_extension_when_check_then_catchall_rules_apply ... ok
[INFO] [stdout] test suppression_directive::given_directive_in_string_when_check_then_not_suppressed ... ok
[INFO] [stdout] test test_repo::tests::test_repo_can_write_and_commit ... ok
[INFO] [stdout] test suppression_directive::given_ignore_next_line_in_string_when_check_then_not_suppressed ... ok
[INFO] [stdout] test test_repo::tests::test_repo_creates_valid_git_repo ... ok
[INFO] [stdout] test suppression_directive::given_unwrap_in_block_comment_when_check_then_not_flagged ... ok
[INFO] [stdout] test suppression_directive::given_unwrap_in_doc_comment_when_check_then_not_flagged ... ok
[INFO] [stdout] test suppression_directive::given_unwrap_in_string_when_check_then_not_flagged ... ok
[INFO] [stdout] test suppression_directive::given_unwrap_in_trailing_comment_when_check_then_not_flagged ... ok
[INFO] [stdout] test suppression_directive::given_unwrap_in_raw_string_when_check_then_not_flagged ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 56 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.17s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "6b5a5526ade6ed0ec0f2f678253af7e0518f9860ec5d54c61104ffbfaf4ba666", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6b5a5526ade6ed0ec0f2f678253af7e0518f9860ec5d54c61104ffbfaf4ba666", kill_on_drop: false }`
[INFO] [stdout] 6b5a5526ade6ed0ec0f2f678253af7e0518f9860ec5d54c61104ffbfaf4ba666
