[INFO] cloning repository https://github.com/claylo/bito [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/claylo/bito" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fclaylo%2Fbito", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fclaylo%2Fbito'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 045742385c9b63da19f72c253a2ca94a0eaf3185 [INFO] testing claylo/bito against beta-2026-04-21 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fclaylo%2Fbito" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-0-tc2/source/.cargo/config.toml [INFO] removed /workspace/builds/worker-0-tc2/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/claylo/bito [INFO] finished tweaking git repo https://github.com/claylo/bito [INFO] tweaked toml for git repo https://github.com/claylo/bito written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/claylo/bito on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/claylo/bito 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9238291712ba7fc94ac3ed1655d79072b6a162e086e1fb231b7f45d388e465ab [INFO] running `Command { std: "docker" "start" "-a" "9238291712ba7fc94ac3ed1655d79072b6a162e086e1fb231b7f45d388e465ab", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9238291712ba7fc94ac3ed1655d79072b6a162e086e1fb231b7f45d388e465ab", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9238291712ba7fc94ac3ed1655d79072b6a162e086e1fb231b7f45d388e465ab", kill_on_drop: false }` [INFO] [stdout] 9238291712ba7fc94ac3ed1655d79072b6a162e086e1fb231b7f45d388e465ab [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] df8cb77d4660bf132eeff278d53c28076db45a35afc0e271f6879531c3992388 [INFO] running `Command { std: "docker" "start" "-a" "df8cb77d4660bf132eeff278d53c28076db45a35afc0e271f6879531c3992388", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling unicode-ident v1.0.23 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling zmij v1.0.20 [INFO] [stderr] Compiling pin-project-lite v0.2.16 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling simd-adler32 v0.3.8 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling rmp v0.8.15 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling aneubeck-daachorse v1.1.1 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling tinyvec_macros v0.1.1 [INFO] [stderr] Compiling tinyvec v1.10.0 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling uncased v0.9.10 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling pulldown-cmark v0.13.0 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling deranged v0.5.5 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling unicode-normalization v0.1.25 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling getopts v0.2.24 [INFO] [stderr] Compiling figment v0.10.19 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling pulldown-cmark-escape v0.11.0 [INFO] [stderr] Compiling inlinable_string v0.1.15 [INFO] [stderr] Compiling camino v1.2.2 [INFO] [stderr] Compiling ryu v1.0.22 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling portable-atomic v1.13.1 [INFO] [stderr] Compiling is_ci v1.2.0 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling anyhow v1.0.101 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling dyn-clone v1.0.20 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling owo-colors v4.3.0 [INFO] [stderr] Compiling rmcp v1.3.0 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling supports-color v2.1.0 [INFO] [stderr] Compiling directories v6.0.0 [INFO] [stderr] Compiling supports-color v3.0.2 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling console v0.16.2 [INFO] [stderr] Compiling unit-prefix v0.5.2 [INFO] [stderr] Compiling pastey v0.2.1 [INFO] [stderr] Compiling indicatif v0.18.3 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling pear_codegen v0.2.9 [INFO] [stderr] Compiling schemars_derive v1.2.1 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling pear v0.2.9 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling rmcp-macros v1.3.0 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling tracing-appender v0.2.4 [INFO] [stderr] Compiling rmp-serde v1.3.1 [INFO] [stderr] Compiling bpe v0.2.1 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling bpe-openai v0.3.0 [INFO] [stderr] Compiling schemars v1.2.1 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling ah-ah-ah v0.1.0 [INFO] [stderr] Compiling bito-core v1.0.0 (/opt/rustwide/workdir/crates/bito-core) [INFO] [stderr] Compiling bito v1.0.0 (/opt/rustwide/workdir/crates/bito) [INFO] [stderr] Finished `dev` profile [optimized + debuginfo] target(s) in 8m 03s [INFO] running `Command { std: "docker" "inspect" "df8cb77d4660bf132eeff278d53c28076db45a35afc0e271f6879531c3992388", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "df8cb77d4660bf132eeff278d53c28076db45a35afc0e271f6879531c3992388", kill_on_drop: false }` [INFO] [stdout] df8cb77d4660bf132eeff278d53c28076db45a35afc0e271f6879531c3992388 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] eca59d6016cbdc3205503b68d56a2c9d87a9767bedbf46b8b52187cf6817e446 [INFO] running `Command { std: "docker" "start" "-a" "eca59d6016cbdc3205503b68d56a2c9d87a9767bedbf46b8b52187cf6817e446", kill_on_drop: false }` [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling predicates-core v1.0.9 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling pulldown-cmark v0.13.0 [INFO] [stderr] Compiling termtree v0.5.1 [INFO] [stderr] Compiling normalize-line-endings v0.3.0 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling assert_cmd v2.2.0 [INFO] [stderr] Compiling predicates-tree v1.0.12 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling predicates v3.1.3 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling ah-ah-ah v0.1.0 [INFO] [stderr] Compiling bito-core v1.0.0 (/opt/rustwide/workdir/crates/bito-core) [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling bito v1.0.0 (/opt/rustwide/workdir/crates/bito) [INFO] [stderr] Finished `test` profile [optimized + debuginfo] target(s) in 3m 24s [INFO] running `Command { std: "docker" "inspect" "eca59d6016cbdc3205503b68d56a2c9d87a9767bedbf46b8b52187cf6817e446", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "eca59d6016cbdc3205503b68d56a2c9d87a9767bedbf46b8b52187cf6817e446", kill_on_drop: false }` [INFO] [stdout] eca59d6016cbdc3205503b68d56a2c9d87a9767bedbf46b8b52187cf6817e446 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 446efa499b050b32ab864931d5631c75089c2f71bad75a53b66e8763ac1f01c1 [INFO] running `Command { std: "docker" "start" "-a" "446efa499b050b32ab864931d5631c75089c2f71bad75a53b66e8763ac1f01c1", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [optimized + debuginfo] target(s) in 0.28s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/bito-69e8aedd573d1f92) [INFO] [stdout] [INFO] [stdout] running 28 tests [INFO] [stdout] test commands::analyze::tests::resolve_checks_passes_through ... ok [INFO] [stdout] test commands::analyze::tests::resolve_both_none_returns_none ... ok [INFO] [stdout] test commands::info::tests::test_cmd_info_text_succeeds ... ok [INFO] [stdout] test commands::analyze::tests::resolve_exclude_removes_named ... ok [INFO] [stdout] test commands::analyze::tests::resolve_exclude_unknown_errors ... ok [INFO] [stdout] test server::tests::analyze_writing_invalid_dialect_returns_error ... ok [INFO] [stdout] test commands::info::tests::test_cmd_info_json_via_global ... ok [INFO] [stdout] test server::tests::analyze_writing_with_dialect ... ok [INFO] [stdout] test server::tests::check_completeness_tool_detects_failure ... ok [INFO] [stdout] test server::tests::check_completeness_tool_works ... ok [INFO] [stdout] test commands::info::tests::test_config_info_no_file ... ok [INFO] [stdout] test server::tests::get_custom_not_found_returns_error ... ok [INFO] [stdout] test server::tests::get_custom_returns_inline_content ... ok [INFO] [stdout] test server::tests::analyze_writing_tool_works ... ok [INFO] [stdout] test server::tests::get_info_tool_returns_json_when_requested ... ok [INFO] [stdout] test server::tests::lint_file_no_rules_returns_no_match ... ok [INFO] [stdout] test server::tests::lint_file_with_rules_runs_checks ... ok [INFO] [stdout] test server::tests::check_readability_tool_works ... ok [INFO] [stdout] test server::tests::check_grammar_tool_works ... ok [INFO] [stdout] test server::tests::server_has_tools_capability ... ok [INFO] [stdout] test server::tests::server_info_has_correct_name ... ok [INFO] [stdout] test server::tests::get_info_tool_returns_text_by_default ... ok [INFO] [stdout] test server::tests::server_has_instructions ... ok [INFO] [stdout] test server::tests::count_tokens_tool_works ... ok [INFO] [stdout] test commands::doctor::tests::test_cmd_doctor_text_succeeds ... ok [INFO] [stdout] test commands::doctor::tests::test_doctor_report_gathers ... ok [INFO] [stdout] test server::tests::mcp_tool_schemas_fit_token_budget ... ok [INFO] [stdout] test commands::doctor::tests::test_cmd_doctor_json_succeeds ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/bito-97104ba188f37108) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stderr] Running tests/cli.rs (/opt/rustwide/target/debug/deps/cli-efe590c9589155f4) [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 34 tests [INFO] [stdout] test chdir_flag_changes_directory ... ok [INFO] [stdout] test exclude_skips_named_checks ... ok [INFO] [stdout] test chdir_nonexistent_fails ... ok [INFO] [stdout] test checks_and_exclude_conflict ... ok [INFO] [stdout] test analyze_max_grade_accepted ... ok [INFO] [stdout] test color_auto_accepted ... ok [INFO] [stdout] test color_always_accepted ... ok [INFO] [stdout] test help_flag_shows_usage ... ok [INFO] [stdout] test info_help_shows_command_options ... ok [INFO] [stdout] test info_json_outputs_valid_json ... ok [INFO] [stdout] test invalid_subcommand_shows_error ... ok [INFO] [stdout] test info_shows_package_name_and_version ... ok [INFO] [stdout] test lint_help_shows_usage ... ok [INFO] [stdout] test invalid_flag_shows_error ... ok [INFO] [stdout] test color_never_accepted ... ok [INFO] [stdout] test info_json_contains_expected_fields ... ok [INFO] [stdout] test analyze_passive_max_accepted ... ok [INFO] [stdout] test no_subcommand_shows_help ... ok [INFO] [stdout] test lint_json_output_has_pass_field ... ok [INFO] [stdout] test lint_with_config_rules_runs_checks ... ok [INFO] [stdout] test multiple_verbose_flags_accepted ... ok [INFO] [stdout] test short_help_flag_shows_usage ... ok [INFO] [stdout] test quiet_flag_accepted ... ok [INFO] [stdout] test lint_no_rules_skips ... ok [INFO] [stdout] test short_version_flag_shows_version ... ok [INFO] [stdout] test short_verbose_flag_accepted ... ok [INFO] [stdout] test version_only_prints_bare_version ... ok [INFO] [stdout] test version_flag_shows_version ... ok [INFO] [stdout] test verbose_flag_accepted ... ok [INFO] [stdout] test short_quiet_flag_accepted ... ok [INFO] [stdout] test lint_no_match_skips_cleanly ... ok [INFO] [stdout] test unknown_check_name_fails ... ok [INFO] [stdout] test exclude_unknown_name_fails ... ok [INFO] [stderr] Running tests/config_integration.rs (/opt/rustwide/target/debug/deps/config_integration-f6ecc35b6216ae96) [INFO] [stdout] test lint_with_tokens_budget ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 34 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 20 tests [INFO] [stdout] test discovers_dotfile_config_in_current_dir ... ok [INFO] [stdout] test discovers_dotconfig_directory_config ... ok [INFO] [stdout] test config_in_same_dir_as_git_is_found ... ok [INFO] [stdout] test discovers_config_in_parent_directory ... ok [INFO] [stdout] test dotconfig_takes_precedence_over_dotfile ... ok [INFO] [stdout] test discovers_regular_config_in_current_dir ... ok [INFO] [stdout] test closer_config_takes_precedence ... ok [INFO] [stdout] test dotfile_takes_precedence_over_regular_name ... ok [INFO] [stdout] test explicit_config_overrides_discovered ... ok [INFO] [stdout] test parses_yaml_config ... ok [INFO] [stdout] test parses_json_config ... ok [INFO] [stdout] test first_extension_wins_in_same_directory ... ok [INFO] [stdout] test git_boundary_stops_config_search ... ok [INFO] [stdout] test parses_yml_config ... ok [INFO] [stdout] test parses_toml_config ... ok [INFO] [stdout] test unknown_config_field_is_ignored ... ok [INFO] [stdout] test runs_without_config_file ... ok [INFO] [stdout] test invalid_json_config_shows_error ... ok [INFO] [stdout] test invalid_yaml_config_shows_error ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/bito_core-2e9e9cc8adaff954) [INFO] [stdout] test invalid_toml_config_shows_error ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 197 tests [INFO] [stdout] test analysis::cliches::tests::case_insensitive ... ok [INFO] [stdout] test analysis::cliches::tests::counts_repeated_cliche ... ok [INFO] [stdout] test analysis::cliches::tests::detects_single_cliche ... ok [INFO] [stdout] test analysis::complex_paragraphs::tests::empty_input ... ok [INFO] [stdout] test analysis::cliches::tests::no_cliches ... ok [INFO] [stdout] test analysis::cliches::tests::detects_multiple_cliches ... ok [INFO] [stdout] test analysis::complex_paragraphs::tests::complex_paragraph_flagged ... ok [INFO] [stdout] test analysis::consistency::tests::case_insensitive ... ok [INFO] [stdout] test analysis::complex_paragraphs::tests::mixed_paragraphs ... ok [INFO] [stdout] test analysis::consistency::tests::detects_hyphenation_inconsistency ... ok [INFO] [stdout] test analysis::consistency::tests::detects_us_uk_mixing ... ok [INFO] [stdout] test analysis::consistency::tests::dialect_en_au_follows_gb ... ok [INFO] [stdout] test analysis::consistency::tests::dialect_en_ca_flags_color ... ok [INFO] [stdout] test analysis::consistency::tests::detects_both_issue_types ... ok [INFO] [stdout] test analysis::consistency::tests::dialect_en_ca_flags_organise ... ok [INFO] [stdout] test analysis::consistency::tests::dialect_en_gb_flags_us_spelling ... ok [INFO] [stdout] test analysis::consistency::tests::dialect_en_ca_hybrid_behavior ... ok [INFO] [stdout] test analysis::complex_paragraphs::tests::simple_paragraph_not_flagged ... ok [INFO] [stdout] test analysis::consistency::tests::dialect_en_us_flags_uk_spelling ... ok [INFO] [stdout] test analysis::consistency::tests::dialect_mode_detects_mixing_too ... ok [INFO] [stdout] test analysis::consistency::tests::no_dialect_backward_compat ... ok [INFO] [stdout] test analysis::consistency::tests::word_present_basic ... ok [INFO] [stdout] test analysis::consistency::tests::word_boundary_matches_standalone_words ... ok [INFO] [stdout] test analysis::echoes::tests::detects_close_repetition ... ok [INFO] [stdout] test analysis::consistency::tests::no_issues_consistent_text ... ok [INFO] [stdout] test analysis::consistency::tests::word_boundary_prevents_false_positives ... ok [INFO] [stdout] test analysis::echoes::tests::multiple_paragraphs ... ok [INFO] [stdout] test analysis::echoes::tests::empty_paragraphs ... ok [INFO] [stdout] test analysis::echoes::tests::sorted_by_distance ... ok [INFO] [stdout] test analysis::echoes::tests::no_echoes_in_varied_text ... ok [INFO] [stdout] test analysis::pacing::tests::empty_input ... ok [INFO] [stdout] test analysis::pacing::tests::mixed_pacing ... ok [INFO] [stdout] test analysis::pacing::tests::all_slow ... ok [INFO] [stdout] test analysis::repeated::tests::detects_repeated_bigram ... ok [INFO] [stdout] test analysis::repeated::tests::empty_input ... ok [INFO] [stdout] test analysis::pacing::tests::all_fast ... ok [INFO] [stdout] test analysis::repeated::tests::detects_trigram ... ok [INFO] [stdout] test analysis::repeated::tests::single_word ... ok [INFO] [stdout] test analysis::repeated::tests::sorted_by_count_descending ... ok [INFO] [stdout] test analysis::sensory::tests::detects_sight_words ... ok [INFO] [stdout] test analysis::sensory::tests::detects_multiple_senses ... ok [INFO] [stdout] test analysis::sensory::tests::empty_input ... ok [INFO] [stdout] test analysis::sensory::tests::no_sensory_words ... ok [INFO] [stdout] test analysis::repeated::tests::no_repetition ... ok [INFO] [stdout] test analysis::sensory::tests::sense_percentage_within_sensory ... ok [INFO] [stdout] test analysis::sensory::tests::percentage_calculation ... ok [INFO] [stdout] test analysis::tests::full_analysis_with_dialect ... ok [INFO] [stdout] test analysis::tests::mixed_known_unknown_checks_returns_error ... ok [INFO] [stdout] test analysis::tests::empty_input_errors ... ok [INFO] [stdout] test analysis::tests::selective_checks ... ok [INFO] [stdout] test completeness::tests::available_templates_includes_custom ... ok [INFO] [stdout] test completeness::tests::adr_template_sections ... ok [INFO] [stdout] test completeness::tests::complete_adr_passes ... ok [INFO] [stdout] test completeness::tests::complete_handoff_passes ... ok [INFO] [stdout] test completeness::tests::custom_template_overrides_builtin ... ok [INFO] [stdout] test completeness::tests::custom_template_works ... ok [INFO] [stdout] test completeness::tests::empty_section_detected ... ok [INFO] [stdout] test completeness::tests::missing_section_detected ... ok [INFO] [stdout] test completeness::tests::unknown_template_errors ... ok [INFO] [stdout] test config::tests::bito_config_discovered ... ok [INFO] [stdout] test analysis::tests::unknown_check_returns_error ... ok [INFO] [stdout] test config::tests::bito_yaml_discovered ... ok [INFO] [stdout] test config::tests::custom_entries_default_to_none ... ok [INFO] [stdout] test config::tests::custom_entries_deserialize_from_yaml ... ok [INFO] [stdout] test config::tests::disable_input_limit_defaults_to_false ... ok [INFO] [stdout] test config::tests::empty_config_still_works_with_rules_field ... ok [INFO] [stdout] test config::tests::only_closest_directory_contributes ... ok [INFO] [stdout] test config::tests::resolve_custom_entry_empty_errors ... ok [INFO] [stdout] test config::tests::resolve_custom_entry_file ... ok [INFO] [stdout] test config::tests::resolve_custom_entry_file_wins_over_inline ... ok [INFO] [stdout] test config::tests::resolve_custom_entry_inline ... ok [INFO] [stdout] test config::tests::rules_default_to_none ... ok [INFO] [stdout] test config::tests::rules_deserialize_from_yaml ... ok [INFO] [stdout] test config::tests::disable_input_limit_overrides_max_bytes ... ok [INFO] [stdout] test config::tests::test_boundary_marker_stops_search ... ok [INFO] [stdout] test config::tests::test_default_config ... ok [INFO] [stdout] test config::tests::test_dialect_as_str ... ok [INFO] [stdout] test config::tests::test_dialect_default_is_none ... ok [INFO] [stdout] test analysis::tests::markdown_stripping_works ... ok [INFO] [stdout] test analysis::tests::full_analysis_runs ... ok [INFO] [stdout] test config::tests::test_dialect_deserialization_toml ... ok [INFO] [stdout] test config::tests::test_load_or_error_fails_when_no_config ... ok [INFO] [stdout] test config::tests::test_later_file_overrides_earlier ... ok [INFO] [stdout] test config::tests::test_explicit_file_overrides_project_config ... ok [INFO] [stdout] test config::tests::test_dotconfig_directory_takes_precedence ... ok [INFO] [stdout] test config::tests::test_env_var_overrides_file_config ... ok [INFO] [stdout] test config::tests::test_env_var_override_dialect ... ok [INFO] [stdout] test analysis::tests::valid_checks_accepted ... ok [INFO] [stdout] test dictionaries::abbreviations::tests::ends_with_abbreviation_works ... ok [INFO] [stdout] test config::tests::test_load_or_error_succeeds_with_explicit_file ... ok [INFO] [stdout] test config::tests::test_loader_builds_with_defaults ... ok [INFO] [stdout] test config::tests::test_single_file_overrides_default ... ok [INFO] [stdout] test config::tests::test_user_config_dir ... ok [INFO] [stdout] test config::tests::test_project_config_discovery ... ok [INFO] [stdout] test dictionaries::abbreviations::tests::common_abbreviations ... ok [INFO] [stdout] test dictionaries::abbreviations::tests::not_abbreviations ... ok [INFO] [stdout] test dictionaries::irregular_verbs::tests::adjective_exceptions ... ok [INFO] [stdout] test dictionaries::irregular_verbs::tests::irregular_participles ... ok [INFO] [stdout] test dictionaries::irregular_verbs::tests::linking_verbs ... ok [INFO] [stdout] test dictionaries::syllable_dict::tests::dictionary_lookup ... ok [INFO] [stdout] test dictionaries::syllable_dict::tests::edge_cases ... ok [INFO] [stdout] test dictionaries::syllable_dict::tests::syllable_estimation ... ok [INFO] [stdout] test dictionaries::syllable_dict::tests::count_uses_dict_then_fallback ... ok [INFO] [stdout] test config::tests::test_dialect_deserialization_all_variants ... ok [INFO] [stdout] test grammar::checker::tests::clean_sentence_no_issues ... ok [INFO] [stdout] test grammar::checker::tests::detects_double_negative ... ok [INFO] [stdout] test directives::tests::disable_next_line ... ok [INFO] [stdout] test directives::tests::no_directives_returns_empty ... ok [INFO] [stdout] test directives::tests::disable_enable_block ... ok [INFO] [stdout] test grammar::checker::tests::detects_double_space ... ok [INFO] [stdout] test grammar::checker::tests::detects_missing_punctuation ... ok [INFO] [stdout] test directives::tests::unclosed_disable_is_file_level ... ok [INFO] [stdout] test directives::tests::multiple_checks_comma_separated ... ok [INFO] [stdout] test grammar::passive_voice::tests::empty_text_returns_empty ... ok [INFO] [stdout] test grammar::passive_voice::tests::detects_simple_passive ... ok [INFO] [stdout] test directives::tests::unrelated_check_not_affected ... ok [INFO] [stdout] test grammar::checker::tests::detects_subject_verb_agreement ... ok [INFO] [stdout] test grammar::passive_voice::tests::detects_multiple_passive ... ok [INFO] [stdout] test grammar::tests::markdown_stripping ... ok [INFO] [stdout] test directives::tests::multiple_regions_for_same_check ... ok [INFO] [stdout] test grammar::passive_voice::tests::skips_adjective_exceptions ... ok [INFO] [stdout] test grammar::tests::empty_input_errors ... ok [INFO] [stdout] test lint::tests::completeness_missing_sections_fails ... ok [INFO] [stdout] test lint::tests::disable_next_line_filters_single_finding ... ok [INFO] [stdout] test lint::tests::analyze_checks_and_exclude_conflict_errors ... ok [INFO] [stdout] test lint::tests::empty_resolved_checks_produces_empty_report ... ok [INFO] [stdout] test lint::tests::analyze_check_runs ... ok [INFO] [stdout] test lint::tests::file_level_suppression_skips_check ... ok [INFO] [stdout] test lint::tests::config_defaults_cascade_to_analyze ... ok [INFO] [stdout] test lint::tests::rule_settings_override_config ... ok [INFO] [stdout] test lint::tests::region_suppression_filters_grammar_findings ... ok [INFO] [stdout] test grammar::tests::full_grammar_report ... ok [INFO] [stdout] test grammar::passive_voice::tests::percentage_calculation ... ok [INFO] [stdout] test grammar::tests::over_max_passive ... ok [INFO] [stdout] test lint::tests::suppression_does_not_affect_unsuppressed_findings ... ok [INFO] [stdout] test markdown::tests::extract_headings_skips_frontmatter ... ok [INFO] [stdout] test markdown::tests::strip_preserves_blockquote_text ... ok [INFO] [stdout] test markdown::tests::empty_input_returns_empty ... ok [INFO] [stdout] test markdown::tests::strip_removes_code_blocks ... ok [INFO] [stdout] test markdown::tests::strip_removes_headings ... ok [INFO] [stdout] test markdown::tests::strip_removes_emphasis_markers ... ok [INFO] [stdout] test markdown::tests::strip_removes_frontmatter ... ok [INFO] [stdout] test markdown::tests::strip_removes_inline_code ... ok [INFO] [stdout] test markdown::tests::strip_removes_tables ... ok [INFO] [stdout] test observability::tests::days_to_ymd_known_dates ... ok [INFO] [stdout] test observability::tests::env_filter_verbose_maps_to_debug_and_trace ... ok [INFO] [stdout] test observability::tests::env_filter_quiet_overrides ... ok [INFO] [stdout] test observability::tests::format_timestamp_produces_valid_rfc3339 ... ok [INFO] [stdout] test markdown::tests::extract_headings_finds_all_levels ... ok [INFO] [stdout] test markdown::tests::strip_preserves_link_text ... ok [INFO] [stdout] test observability::tests::log_target_from_dir_appends_file_name ... ok [INFO] [stdout] test observability::tests::log_target_from_path_uses_parent_dir ... ok [INFO] [stdout] test readability::tests::basic_readability ... ok [INFO] [stdout] test readability::tests::dictionary_backed_syllables ... ok [INFO] [stdout] test observability::tests::resolve_log_target_with_prefers_path_override ... ok [INFO] [stdout] test observability::tests::resolve_log_target_with_uses_config_dir ... ok [INFO] [stdout] test readability::tests::empty_input_errors ... ok [INFO] [stdout] test readability::tests::markdown_stripping ... ok [INFO] [stdout] test readability::tests::over_max_grade ... ok [INFO] [stdout] test rules::tests::equal_specificity_earlier_rule_wins ... ok [INFO] [stdout] test rules::tests::accumulates_different_checks_from_multiple_rules ... ok [INFO] [stdout] test observability::tests::resolve_log_target_with_falls_back_to_dir_override ... ok [INFO] [stdout] test rules::tests::no_rules_returns_empty ... ok [INFO] [stdout] test rules::tests::invalid_glob_skipped_gracefully ... ok [INFO] [stdout] test observability::tests::platform_log_dir_contains_service_name ... ok [INFO] [stdout] test rules::tests::no_match_returns_empty ... ok [INFO] [stdout] test rules::tests::specific_rule_overrides_general_for_same_check ... ok [INFO] [stdout] test rules::tests::specificity_counts_literal_segments ... ok [INFO] [stdout] test rules::tests::single_match_returns_checks ... ok [INFO] [stdout] test text::tests::empty_input ... ok [INFO] [stdout] test text::tests::abbreviations_not_split ... ok [INFO] [stdout] test rules::tests::multiple_paths_in_single_rule ... ok [INFO] [stdout] test text::tests::basic_sentences ... ok [INFO] [stdout] test text::tests::decimal_numbers_not_split ... ok [INFO] [stdout] test text::tests::paragraph_line_map_multiline_paragraphs ... ok [INFO] [stdout] test text::tests::empty_text_empty_maps ... ok [INFO] [stdout] test text::tests::sentence_line_map_multiple_sentences_one_line ... ok [INFO] [stdout] test text::tests::question_and_exclamation ... ok [INFO] [stdout] test text::tests::paragraph_line_map_basic ... ok [INFO] [stdout] test text::tests::extract_words_basic ... ok [INFO] [stdout] test text::tests::sentence_line_map_basic ... ok [INFO] [stdout] test tokens::tests::backend_default_is_claude ... ok [INFO] [stdout] test tokens::tests::backend_display_and_as_str ... ok [INFO] [stdout] test text::tests::sentence_line_map_with_blank_lines ... ok [INFO] [stdout] test text::tests::split_paragraphs_basic ... ok [INFO] [stdout] test tokens::tests::backend_serde_roundtrip ... ok [INFO] [stdout] test tokens::tests::claude_backend_counts_tokens ... ok [INFO] [stdout] test lint::tests::tokens_over_budget_fails ... ok [INFO] [stdout] test tokens::tests::mixed_table_and_prose ... ok [INFO] [stdout] test lint::tests::suppression_does_not_affect_other_checks ... ok [INFO] [stdout] test tokens::tests::table_aware_counting ... ok [INFO] [stdout] test tokens::tests::within_budget ... ok [INFO] [stdout] test tokens::tests::detects_over_budget ... ok [INFO] [stdout] test tokens::tests::empty_text_returns_zero ... ok [INFO] [stdout] test tokens::tests::openai_backend_counts_tokens ... ok [INFO] [stdout] test tokens::tests::claude_overcounts_vs_openai ... ok [INFO] [stdout] test tokens::tests::claude_overcounts_vs_openai_with_tables ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 197 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s [INFO] [stdout] [INFO] [stderr] Doc-tests bito [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests bito_core [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test crates/bito-core/src/config.rs - config (line 27) - compile ... ok [INFO] [stdout] test crates/bito-core/src/lib.rs - (line 19) - compile ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.73s; merged doctests compilation took 0.73s [INFO] running `Command { std: "docker" "inspect" "446efa499b050b32ab864931d5631c75089c2f71bad75a53b66e8763ac1f01c1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "446efa499b050b32ab864931d5631c75089c2f71bad75a53b66e8763ac1f01c1", kill_on_drop: false }` [INFO] [stdout] 446efa499b050b32ab864931d5631c75089c2f71bad75a53b66e8763ac1f01c1