[INFO] cloning repository https://github.com/epicsagas/alcove [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/epicsagas/alcove" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fepicsagas%2Falcove", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fepicsagas%2Falcove'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ee4237832708e947ea712c16420ffd177b719943 [INFO] testing epicsagas/alcove against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fepicsagas%2Falcove" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/epicsagas/alcove [INFO] finished tweaking git repo https://github.com/epicsagas/alcove [INFO] tweaked toml for git repo https://github.com/epicsagas/alcove written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/epicsagas/alcove on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/epicsagas/alcove 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" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d6267b1af68782423c55fc0b3bc47262b3a4d5ad09ebf4ef3b860b2ae25c4a48 [INFO] running `Command { std: "docker" "start" "-a" "d6267b1af68782423c55fc0b3bc47262b3a4d5ad09ebf4ef3b860b2ae25c4a48", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d6267b1af68782423c55fc0b3bc47262b3a4d5ad09ebf4ef3b860b2ae25c4a48", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d6267b1af68782423c55fc0b3bc47262b3a4d5ad09ebf4ef3b860b2ae25c4a48", kill_on_drop: false }` [INFO] [stdout] d6267b1af68782423c55fc0b3bc47262b3a4d5ad09ebf4ef3b860b2ae25c4a48 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 27c34970954caaff410f6129449acda4811a13a2d40c9fe252c42b207142b2b0 [INFO] running `Command { std: "docker" "start" "-a" "27c34970954caaff410f6129449acda4811a13a2d40c9fe252c42b207142b2b0", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling zerocopy v0.8.40 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling crunchy v0.2.4 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling ownedbytes v0.9.0 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling prettyplease v0.2.37 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling bitpacking v0.9.3 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling arc-swap v1.8.2 [INFO] [stderr] Compiling itertools v0.11.0 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling utf8-ranges v1.0.5 [INFO] [stderr] Compiling base62 v2.2.3 [INFO] [stderr] Compiling normpath v1.5.0 [INFO] [stderr] Compiling tantivy-bitpacker v0.9.0 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling murmurhash32 v0.3.1 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling tantivy-fst v0.5.0 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling downcast-rs v2.0.2 [INFO] [stderr] Compiling fastdivide v0.4.2 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling console v0.16.2 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling tempfile v3.26.0 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling fs4 v0.13.1 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling fuzzy-matcher v0.3.7 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling toml_parser v1.0.9+spec-1.1.0 [INFO] [stderr] Compiling uuid v1.22.0 [INFO] [stderr] Compiling memmap2 v0.9.10 [INFO] [stderr] Compiling serde_spanned v1.0.4 [INFO] [stderr] Compiling toml_datetime v1.0.0+spec-1.1.0 [INFO] [stderr] Compiling measure_time v0.9.0 [INFO] [stderr] Compiling census v0.4.2 [INFO] [stderr] Compiling toml_writer v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling lz4_flex v0.11.6 [INFO] [stderr] Compiling oneshot v0.1.13 [INFO] [stderr] Compiling htmlescape v0.3.1 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling levenshtein_automata v0.2.1 [INFO] [stderr] Compiling toml v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling dialoguer v0.12.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling sys-locale v0.3.2 [INFO] [stderr] Compiling ignore v0.4.25 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling globwalk v0.8.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling rust-i18n v3.1.5 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling rand_distr v0.4.3 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling bon-macros v3.9.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling zstd v0.13.3 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling tantivy-common v0.10.0 [INFO] [stderr] Compiling triomphe v0.1.15 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling hyperloglogplus v0.4.1 [INFO] [stderr] Compiling sketches-ddsketch v0.3.1 [INFO] [stderr] Compiling tantivy-tokenizer-api v0.6.0 [INFO] [stderr] Compiling rust-stemmers v1.2.0 [INFO] [stderr] Compiling tantivy-query-grammar v0.25.0 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling tantivy-stacker v0.6.0 [INFO] [stderr] Compiling tantivy-sstable v0.6.0 [INFO] [stderr] Compiling tantivy-columnar v0.6.0 [INFO] [stderr] Compiling bon v3.9.0 [INFO] [stderr] Compiling tantivy v0.25.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling rust-i18n-support v3.1.5 [INFO] [stderr] Compiling rust-i18n-macro v3.1.5 [INFO] [stderr] Compiling alcove v0.7.10 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 18s [INFO] running `Command { std: "docker" "inspect" "27c34970954caaff410f6129449acda4811a13a2d40c9fe252c42b207142b2b0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "27c34970954caaff410f6129449acda4811a13a2d40c9fe252c42b207142b2b0", kill_on_drop: false }` [INFO] [stdout] 27c34970954caaff410f6129449acda4811a13a2d40c9fe252c42b207142b2b0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9df602256d5823ecb8745b6e9b1891bab851e17ee66a0aec1d98d26574d66cf3 [INFO] running `Command { std: "docker" "start" "-a" "9df602256d5823ecb8745b6e9b1891bab851e17ee66a0aec1d98d26574d66cf3", kill_on_drop: false }` [INFO] [stderr] Compiling alcove v0.7.10 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 8.33s [INFO] running `Command { std: "docker" "inspect" "9df602256d5823ecb8745b6e9b1891bab851e17ee66a0aec1d98d26574d66cf3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9df602256d5823ecb8745b6e9b1891bab851e17ee66a0aec1d98d26574d66cf3", kill_on_drop: false }` [INFO] [stdout] 9df602256d5823ecb8745b6e9b1891bab851e17ee66a0aec1d98d26574d66cf3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 9858e8966238ecec3af040c3482df5647d26c8bf9cbaf5b8434168a567a9d544 [INFO] running `Command { std: "docker" "start" "-a" "9858e8966238ecec3af040c3482df5647d26c8bf9cbaf5b8434168a567a9d544", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.26s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/alcove-b99b66fbd100e67c) [INFO] [stdout] [INFO] [stdout] running 81 tests [INFO] [stdout] test config::tests::config_defaults_when_empty ... ok [INFO] [stdout] test config::tests::classify_tier_with_custom_config ... ok [INFO] [stdout] test config::tests::default_docs_root_contains_alcove_docs ... ok [INFO] [stdout] test config::tests::classify_project_repo_files ... ok [INFO] [stdout] test config::tests::classify_reports_backslash ... ok [INFO] [stdout] test config::tests::config_custom_core_files ... ok [INFO] [stdout] test config::tests::classify_core_files ... ok [INFO] [stdout] test config::tests::classify_core_case_insensitive ... ok [INFO] [stdout] test config::tests::doc_file_markdown ... ok [INFO] [stdout] test config::tests::classify_supplementary_files ... ok [INFO] [stdout] test config::tests::doc_file_openapi ... ok [INFO] [stdout] test config::tests::classify_unknown_file ... ok [INFO] [stdout] test config::tests::config_parse_toml ... ok [INFO] [stdout] test config::tests::docs_root_returns_explicit_value ... ok [INFO] [stdout] test config::tests::docs_root_returns_none_when_no_config_and_no_default_dir ... ok [INFO] [stdout] test config::tests::overlay_empty_project_uses_base ... ok [INFO] [stdout] test config::tests::is_indexable_falls_back_to_is_doc_file ... ok [INFO] [stdout] test config::tests::extra_extensions_overlay_base_fills_when_project_unset ... ok [INFO] [stdout] test config::tests::is_indexable_no_double_count_for_md ... ok [INFO] [stdout] test config::tests::project_config_path_is_in_project_dir ... ok [INFO] [stdout] test config::tests::is_indexable_respects_extra_extensions ... ok [INFO] [stdout] test config::tests::suggest_debt_related ... ok [INFO] [stdout] test config::tests::extra_extensions_overlay_project_wins ... ok [INFO] [stdout] test config::tests::extra_extensions_toml_deserialization ... ok [INFO] [stdout] test config::tests::is_indexable_case_insensitive ... ok [INFO] [stdout] test config::tests::suggest_conventions_related ... ok [INFO] [stdout] test config::tests::is_indexable_handles_dot_prefixed_extensions ... ok [INFO] [stdout] test config::tests::suggest_prd_related ... ok [INFO] [stdout] test config::tests::suggest_architecture_related ... ok [INFO] [stdout] test config::tests::suggest_uncategorized ... ok [INFO] [stdout] test config::tests::suggest_reports_folder ... ok [INFO] [stdout] test config::tests::suggest_secrets_related ... ok [INFO] [stdout] test config::tests::load_project_config_reads_toml ... ok [INFO] [stdout] test config::tests::effective_config_project_overrides_are_applied ... ok [INFO] [stdout] test config::tests::suggest_progress_related ... ok [INFO] [stdout] test config::tests::classify_reports_folder ... ok [INFO] [stdout] test config::tests::suggest_decisions_related ... ok [INFO] [stdout] test config::tests::load_project_config_missing_file_returns_default ... ok [INFO] [stdout] test index::tests::chunk_content_basic ... ok [INFO] [stdout] test index::tests::chunk_content_empty ... ok [INFO] [stdout] test index::tests::chunk_content_long_splits ... ok [INFO] [stdout] test config::tests::is_doc_file_no_extension ... ok [INFO] [stdout] test config::tests::doc_file_txt_rst ... ok [INFO] [stdout] test index::tests::chunk_content_single_line ... ok [INFO] [stdout] test index::tests::index_exists_false_when_no_index ... ok [INFO] [stdout] test index::tests::build_index_lock_prevents_concurrent ... ok [INFO] [stdout] test index::tests::check_doc_changes_no_index ... ok [INFO] [stdout] test config::tests::doc_file_rejects_non_docs ... ok [INFO] [stdout] test config::tests::overlay_project_overrides_base ... ok [INFO] [stdout] test index::tests::sanitize_query_escapes_special_chars ... ok [INFO] [stdout] test index::tests::sanitize_query_mixed_special_and_text ... ok [INFO] [stdout] test index::tests::sanitize_query_preserves_unicode ... ok [INFO] [stdout] test index::tests::is_index_stale_when_no_index ... ok [INFO] [stdout] test index::tests::build_index_incremental_skips_unchanged ... ok [INFO] [stdout] test index::tests::build_index_succeeds ... ok [INFO] [stdout] test index::tests::is_index_stale_after_new_file ... ok [INFO] [stdout] test index::tests::check_doc_changes_after_delete ... ok [INFO] [stdout] test index::tests::search_indexed_chinese ... ok [INFO] [stdout] test index::tests::ensure_index_fresh_rebuilds_when_stale ... ok [INFO] [stdout] test index::tests::search_indexed_no_index_returns_error ... ok [INFO] [stdout] test index::tests::ensure_index_fresh_skips_when_fresh ... ok [INFO] [stdout] test index::tests::check_doc_changes_after_add ... ok [INFO] [stdout] test index::tests::is_index_fresh_after_build ... ok [INFO] [stdout] test index::tests::is_index_stale_after_file_deletion ... ok [INFO] [stdout] test index::tests::check_doc_changes_fresh_index ... ok [INFO] [stdout] test index::tests::build_index_incremental_rebuilds_after_change ... ok [INFO] [stdout] test index::tests::search_indexed_korean ... ok [INFO] [stdout] test index::tests::index_exists_true_after_build ... ok [INFO] [stdout] test index::tests::search_indexed_global_scope_label ... ok [INFO] [stdout] test index::tests::search_indexed_deduplicates_by_file ... ok [INFO] [stdout] test index::tests::search_indexed_empty_query ... ok [INFO] [stdout] test index::tests::search_indexed_japanese ... ok [INFO] [stdout] test index::tests::search_indexed_no_results ... ok [INFO] [stdout] test index::tests::search_indexed_respects_limit ... ok [INFO] [stdout] test index::tests::search_indexed_finds_oauth ... ok [INFO] [stdout] test index::tests::search_indexed_skips_hidden_projects ... ok [INFO] [stdout] test index::tests::search_indexed_with_project_filter ... ok [INFO] [stdout] test index::tests::search_indexed_special_chars_no_panic ... ok [INFO] [stdout] test index::tests::search_indexed_project_scope_label ... ok [INFO] [stdout] test index::tests::is_index_stale_after_file_change ... ok [INFO] [stdout] test index::tests::check_doc_changes_after_modify ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 81 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.48s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/alcove-c49c15910136ae05) [INFO] [stdout] [INFO] [stdout] running 245 tests [INFO] [stdout] test cli::tests::agents_all_have_mcp_config ... ok [INFO] [stdout] test cli::tests::agents_contains_known_names ... ok [INFO] [stdout] test cli::tests::agents_returns_expected_count ... ok [INFO] [stdout] test cli::tests::categories_defaults_are_non_empty ... ok [INFO] [stdout] test cli::tests::categories_has_three_entries ... ok [INFO] [stdout] test cli::tests::binary_path_is_not_empty ... ok [INFO] [stdout] test cli::tests::categories_labels_match_expected ... ok [INFO] [stdout] test cli::tests::diagram_formats_has_expected_entries ... ok [INFO] [stdout] test cli::tests::diagram_formats_all_have_labels ... ok [INFO] [stdout] test cli::tests::expand_path_absolute_unchanged ... ok [INFO] [stdout] test cli::tests::expand_path_relative_unchanged ... ok [INFO] [stdout] test cli::tests::expand_path_tilde_expands_to_home ... ok [INFO] [stdout] test cli::tests::shellexpand_tilde ... ok [INFO] [stdout] test cli::tests::save_docs_root_creates_new_config ... ok [INFO] [stdout] test cli::tests::write_json_mcp_creates_new_file ... ok [INFO] [stdout] test cli::tests::install_skill_to_overwrites_existing ... ok [INFO] [stdout] test cli::tests::save_docs_root_prepends_when_no_docs_root_key ... ok [INFO] [stdout] test cli::tests::install_skill_to_creates_skill_file ... ok [INFO] [stdout] test cli::tests::write_codex_mcp_appends_to_existing ... ok [INFO] [stdout] test config::tests::classify_core_case_insensitive ... ok [INFO] [stdout] test cli::tests::write_codex_mcp_creates_new_file ... ok [INFO] [stdout] test config::tests::classify_core_files ... ok [INFO] [stdout] test config::tests::classify_reports_folder ... ok [INFO] [stdout] test config::tests::classify_reports_backslash ... ok [INFO] [stdout] test config::tests::classify_project_repo_files ... ok [INFO] [stdout] test cli::tests::save_full_config_writes_all_sections ... ok [INFO] [stdout] test cli::tests::shellexpand_no_tilde ... ok [INFO] [stdout] test cli::tests::expand_path_tilde_only_no_slash_unchanged ... ok [INFO] [stdout] test config::tests::classify_supplementary_files ... ok [INFO] [stdout] test cli::tests::write_opencode_mcp_creates_new_file ... ok [INFO] [stdout] test cli::tests::write_json_mcp_creates_parent_dirs ... ok [INFO] [stdout] test cli::tests::write_opencode_mcp_merges_existing ... ok [INFO] [stdout] test config::tests::doc_file_openapi ... ok [INFO] [stdout] test config::tests::default_docs_root_contains_alcove_docs ... ok [INFO] [stdout] test config::tests::doc_file_rejects_non_docs ... ok [INFO] [stdout] test config::tests::doc_file_markdown ... ok [INFO] [stdout] test config::tests::docs_root_returns_explicit_value ... ok [INFO] [stdout] test config::tests::docs_root_returns_none_when_no_config_and_no_default_dir ... ok [INFO] [stdout] test config::tests::classify_tier_with_custom_config ... ok [INFO] [stdout] test config::tests::config_parse_toml ... ok [INFO] [stdout] test config::tests::doc_file_txt_rst ... ok [INFO] [stdout] test cli::tests::write_json_mcp_merges_with_existing ... ok [INFO] [stdout] test config::tests::config_custom_core_files ... ok [INFO] [stdout] test config::tests::classify_unknown_file ... ok [INFO] [stdout] test config::tests::config_defaults_when_empty ... ok [INFO] [stdout] test config::tests::extra_extensions_overlay_base_fills_when_project_unset ... ok [INFO] [stdout] test config::tests::extra_extensions_overlay_project_wins ... ok [INFO] [stdout] test config::tests::is_doc_file_no_extension ... ok [INFO] [stdout] test config::tests::is_indexable_case_insensitive ... ok [INFO] [stdout] test config::tests::is_indexable_falls_back_to_is_doc_file ... ok [INFO] [stdout] test config::tests::effective_config_project_overrides_are_applied ... ok [INFO] [stdout] test config::tests::is_indexable_handles_dot_prefixed_extensions ... ok [INFO] [stdout] test config::tests::extra_extensions_toml_deserialization ... ok [INFO] [stdout] test config::tests::overlay_empty_project_uses_base ... ok [INFO] [stdout] test config::tests::overlay_project_overrides_base ... ok [INFO] [stdout] test config::tests::project_config_path_is_in_project_dir ... ok [INFO] [stdout] test config::tests::suggest_architecture_related ... ok [INFO] [stdout] test config::tests::suggest_prd_related ... ok [INFO] [stdout] test config::tests::load_project_config_missing_file_returns_default ... ok [INFO] [stdout] test config::tests::suggest_conventions_related ... ok [INFO] [stdout] test config::tests::suggest_progress_related ... ok [INFO] [stdout] test config::tests::suggest_uncategorized ... ok [INFO] [stdout] test config::tests::suggest_debt_related ... ok [INFO] [stdout] test config::tests::is_indexable_no_double_count_for_md ... ok [INFO] [stdout] test cli::tests::save_docs_root_updates_existing_docs_root ... ok [INFO] [stdout] test config::tests::is_indexable_respects_extra_extensions ... ok [INFO] [stdout] test config::tests::suggest_decisions_related ... ok [INFO] [stdout] test config::tests::suggest_reports_folder ... ok [INFO] [stdout] test config::tests::load_project_config_reads_toml ... ok [INFO] [stdout] test index::tests::chunk_content_basic ... ok [INFO] [stdout] test index::tests::chunk_content_long_splits ... ok [INFO] [stdout] test index::tests::chunk_content_empty ... ok [INFO] [stdout] test cli::tests::write_codex_mcp_skips_if_already_configured ... ok [INFO] [stdout] test index::tests::index_exists_false_when_no_index ... ok [INFO] [stdout] test index::tests::check_doc_changes_no_index ... ok [INFO] [stdout] test config::tests::suggest_secrets_related ... ok [INFO] [stdout] test index::tests::chunk_content_single_line ... ok [INFO] [stdout] test index::tests::build_index_lock_prevents_concurrent ... ok [INFO] [stdout] test index::tests::is_index_stale_when_no_index ... ok [INFO] [stdout] test index::tests::sanitize_query_mixed_special_and_text ... ok [INFO] [stdout] test index::tests::sanitize_query_escapes_special_chars ... ok [INFO] [stdout] test index::tests::sanitize_query_preserves_unicode ... ok [INFO] [stdout] test index::tests::index_exists_true_after_build ... ok [INFO] [stdout] test index::tests::build_index_succeeds ... ok [INFO] [stdout] test index::tests::is_index_fresh_after_build ... ok [INFO] [stdout] test index::tests::is_index_stale_after_file_deletion ... ok [INFO] [stdout] test index::tests::check_doc_changes_after_delete ... ok [INFO] [stdout] test index::tests::build_index_incremental_skips_unchanged ... ok [INFO] [stdout] test index::tests::search_indexed_no_index_returns_error ... ok [INFO] [stdout] test index::tests::ensure_index_fresh_rebuilds_when_stale ... ok [INFO] [stdout] test index::tests::search_indexed_empty_query ... ok [INFO] [stdout] test index::tests::search_indexed_deduplicates_by_file ... ok [INFO] [stdout] test index::tests::search_indexed_chinese ... ok [INFO] [stdout] test index::tests::ensure_index_fresh_skips_when_fresh ... ok [INFO] [stdout] test index::tests::build_index_incremental_rebuilds_after_change ... ok [INFO] [stdout] test index::tests::is_index_stale_after_new_file ... ok [INFO] [stdout] test mcp::tests::dispatch_check_doc_changes ... ok [INFO] [stdout] test mcp::tests::dispatch_initialize ... ok [INFO] [stdout] test mcp::tests::dispatch_initialized_notification ... ok [INFO] [stdout] test mcp::tests::dispatch_initialized_without_notifications_prefix ... ok [INFO] [stdout] test mcp::tests::dispatch_list_projects_with_valid_docs_root ... ok [INFO] [stdout] test index::tests::check_doc_changes_fresh_index ... ok [INFO] [stdout] test index::tests::search_indexed_korean ... ok [INFO] [stdout] test index::tests::search_indexed_respects_limit ... ok [INFO] [stdout] test mcp::tests::dispatch_check_doc_changes_with_auto_rebuild ... ok [INFO] [stdout] test index::tests::search_indexed_japanese ... ok [INFO] [stdout] test mcp::tests::dispatch_rebuild_index ... ok [INFO] [stdout] test index::tests::search_indexed_project_scope_label ... ok [INFO] [stdout] test index::tests::search_indexed_global_scope_label ... ok [INFO] [stdout] test mcp::tests::dispatch_search_auto_uses_ranked_when_index_exists ... ok [INFO] [stdout] test index::tests::search_indexed_finds_oauth ... ok [INFO] [stdout] test mcp::tests::dispatch_tool_call_invalid_params ... ok [INFO] [stdout] test mcp::tests::dispatch_tools_list_has_schemas ... ok [INFO] [stdout] test mcp::tests::dispatch_tool_call_unknown_tool_with_docs_root ... ok [INFO] [stdout] test mcp::tests::dispatch_unknown_method ... ok [INFO] [stdout] test mcp::tests::dispatch_tools_list ... ok [INFO] [stdout] test mcp::tests::handle_tools_list_contains_validate_docs ... ok [INFO] [stdout] test mcp::tests::mcp_text_result_with_array ... ok [INFO] [stdout] test mcp::tests::rpc_err_omits_result ... ok [INFO] [stdout] test mcp::tests::rpc_err_response ... ok [INFO] [stdout] test mcp::tests::rpc_ok_response ... ok [INFO] [stdout] test mcp::tests::rpc_request_deserialization_missing_optional_fields ... ok [INFO] [stdout] test mcp::tests::rpc_request_deserialization_with_all_fields ... ok [INFO] [stdout] test mcp::tests::rpc_response_ok_with_none_id_skips_id_in_json ... ok [INFO] [stdout] test mcp::tests::rpc_response_serialization ... ok [INFO] [stdout] test mcp::tests::search_schema_has_scope_but_no_mode ... ok [INFO] [stdout] test mcp::tests::tool_description_serialization_renames_input_schema ... ok [INFO] [stdout] test policy::tests::count_items_asterisk_lists ... ok [INFO] [stdout] test policy::tests::count_items_basic ... ok [INFO] [stdout] test policy::tests::count_items_heading_not_found ... ok [INFO] [stdout] test policy::tests::count_items_includes_subheadings ... ok [INFO] [stdout] test mcp::tests::mcp_text_result_with_empty_string ... ok [INFO] [stdout] test policy::tests::count_items_mixed_dash_and_asterisk ... ok [INFO] [stdout] test policy::tests::count_items_no_list_items_just_text ... ok [INFO] [stdout] test mcp::tests::mcp_text_result_with_null ... ok [INFO] [stdout] test policy::tests::count_items_numbered_list_not_counted ... ok [INFO] [stdout] test policy::tests::count_list_items_asterisk_prefix ... ok [INFO] [stdout] test policy::tests::count_list_items_includes_sub_headings ... ok [INFO] [stdout] test policy::tests::count_items_stops_at_same_level ... ok [INFO] [stdout] test mcp::tests::mcp_text_result_wraps_json ... ok [INFO] [stdout] test policy::tests::count_list_items_no_heading_match ... ok [INFO] [stdout] test policy::tests::count_list_items_stops_at_same_level_heading ... ok [INFO] [stdout] test policy::tests::file_status_as_str ... ok [INFO] [stdout] test policy::tests::default_policy_has_all_core_files ... ok [INFO] [stdout] test policy::tests::load_default_policy_from_config ... ok [INFO] [stdout] test policy::tests::load_policy_malformed_toml_returns_default ... ok [INFO] [stdout] test policy::tests::policy_source_returns_default ... ok [INFO] [stdout] test policy::tests::load_team_policy ... ok [INFO] [stdout] test policy::tests::policy_source_returns_project ... ok [INFO] [stdout] test policy::tests::load_policy_empty_file_returns_default ... ok [INFO] [stdout] test mcp::tests::dispatch_search_force_grep_mode ... ok [INFO] [stdout] test policy::tests::load_policy_with_naming_section ... ok [INFO] [stdout] test index::tests::search_indexed_special_chars_no_panic ... ok [INFO] [stdout] test policy::tests::validate_empty_zero_byte_file ... ok [INFO] [stdout] test policy::tests::validate_enforce_relaxed_in_json_output ... ok [INFO] [stdout] test policy::tests::policy_source_returns_team ... ok [INFO] [stdout] test index::tests::search_indexed_skips_hidden_projects ... ok [INFO] [stdout] test policy::tests::validate_enforce_strict_in_json_output ... ok [INFO] [stdout] test policy::tests::project_policy_overrides_team ... ok [INFO] [stdout] test policy::tests::validate_all_sections_passing ... ok [INFO] [stdout] test policy::tests::validate_project_repo_file_missing ... ok [INFO] [stdout] test index::tests::search_indexed_with_project_filter ... ok [INFO] [stdout] test index::tests::check_doc_changes_after_add ... ok [INFO] [stdout] test policy::tests::validate_minimal_content ... ok [INFO] [stdout] test policy::tests::validate_existing_file ... ok [INFO] [stdout] test policy::tests::validate_project_repo_file_found ... ok [INFO] [stdout] test policy::tests::validate_missing_file ... ok [INFO] [stdout] test policy::tests::validation_json_output ... ok [INFO] [stdout] test policy::tests::validation_to_json_has_all_fields ... ok [INFO] [stdout] test policy::tests::validate_project_repo_location ... ok [INFO] [stdout] test policy::tests::validate_project_repo_missing ... ok [INFO] [stdout] test policy::tests::validate_section_min_items ... ok [INFO] [stdout] test policy::tests::validate_template_unfilled ... ok [INFO] [stdout] test policy::tests::validate_section_missing ... ok [INFO] [stdout] test policy::tests::validate_finds_alias ... ok [INFO] [stdout] test policy::tests::validate_sections_pass ... ok [INFO] [stdout] test tools::tests::audit_detects_minimal ... ok [INFO] [stdout] test tools::tests::audit_detects_internal_docs_in_repo ... ok [INFO] [stdout] test index::tests::search_indexed_no_results ... ok [INFO] [stdout] test mcp::tests::dispatch_search_global_grep ... ok [INFO] [stdout] test mcp::tests::dispatch_search_ranked_with_index ... ok [INFO] [stdout] test tools::tests::audit_no_actions_when_complete ... ok [INFO] [stdout] test tools::tests::audit_reports_file_status ... ok [INFO] [stdout] test tools::tests::audit_detects_template_unfilled ... ok [INFO] [stdout] test policy::tests::validate_section_min_items_pass ... ok [INFO] [stdout] test tools::tests::configure_project_creates_alcove_toml_in_repo_root ... ok [INFO] [stdout] test tools::tests::configure_project_updates_existing_preserves_other_fields ... ok [INFO] [stdout] test tools::tests::audit_suggests_missing_internal ... ok [INFO] [stdout] test tools::tests::audit_without_repo_shows_not_detected ... ok [INFO] [stdout] test tools::tests::detect_repo_path_returns_none_for_unrelated_name ... ok [INFO] [stdout] test tools::tests::audit_with_repo_path ... ok [INFO] [stdout] test tools::tests::audit_with_repo_docs_subdirectory ... ok [INFO] [stdout] test tools::tests::get_file_reads_deeply_nested ... ok [INFO] [stdout] test tools::tests::get_file_reads_content ... ok [INFO] [stdout] test tools::tests::get_file_reads_nested ... ok [INFO] [stdout] test tools::tests::get_file_reads_txt ... ok [INFO] [stdout] test tools::tests::get_file_rejects_non_doc ... ok [INFO] [stdout] test tools::tests::get_file_rejects_traversal ... ok [INFO] [stdout] test mcp::tests::dispatch_search_auto_falls_back_to_grep_no_index ... ok [INFO] [stdout] test tools::tests::get_file_rejects_nonexistent ... ok [INFO] [stdout] test tools::tests::global_search_includes_project_field ... ok [INFO] [stdout] test tools::tests::get_file_with_offset_limit ... ok [INFO] [stdout] test tools::tests::init_project_no_template_fails ... ok [INFO] [stdout] test tools::tests::global_search_empty_query ... ok [INFO] [stdout] test tools::tests::global_search_no_results ... ok [INFO] [stdout] test tools::tests::init_project_creates_repo_readme_and_changelog ... ok [INFO] [stdout] test tools::tests::init_project_creates_repo_docs ... ok [INFO] [stdout] test tools::tests::global_search_case_insensitive ... ok [INFO] [stdout] test tools::tests::global_search_respects_limit ... ok [INFO] [stdout] test tools::tests::global_search_returns_scope_field ... ok [INFO] [stdout] test tools::tests::global_search_finds_across_projects ... ok [INFO] [stdout] test tools::tests::list_projects_finds_project ... ok [INFO] [stdout] test tools::tests::init_project_with_file_filter ... ok [INFO] [stdout] test tools::tests::overview_empty_project_dir ... ok [INFO] [stdout] test tools::tests::init_project_creates_docs ... ok [INFO] [stdout] test tools::tests::overview_mixed_file_types ... ok [INFO] [stdout] test tools::tests::overview_lists_files ... ok [INFO] [stdout] test tools::tests::list_projects_skips_hidden_and_template ... ok [INFO] [stdout] test tools::tests::init_project_overwrite ... ok [INFO] [stdout] test tools::tests::list_projects_empty_docs_root ... ok [INFO] [stdout] test tools::tests::resolve_project_with_env_var ... ok [INFO] [stdout] test tools::tests::global_search_skips_hidden_and_template ... ok [INFO] [stdout] test tools::tests::init_project_skips_existing ... ok [INFO] [stdout] test tools::tests::init_project_rejects_path_separator_names ... ok [INFO] [stdout] test tools::tests::search_respects_limit ... ok [INFO] [stdout] test tools::tests::search_case_insensitive ... ok [INFO] [stdout] test tools::tests::search_no_results ... ok [INFO] [stdout] test tools::tests::search_with_offset_limit_args ... ok [INFO] [stdout] test tools::tests::slice_content_offset_and_limit ... ok [INFO] [stdout] test tools::tests::slice_content_unicode ... ok [INFO] [stdout] test tools::tests::slice_content_offset_beyond_length ... ok [INFO] [stdout] test tools::tests::slice_content_with_limit ... ok [INFO] [stdout] test tools::tests::slice_content_with_offset ... ok [INFO] [stdout] test tools::tests::init_project_rejects_invalid_names ... ok [INFO] [stdout] test tools::tests::search_with_empty_query ... ok [INFO] [stdout] test tools::tests::slice_content_full ... ok [INFO] [stdout] test tools::tests::slice_content_limit_beyond_length ... ok [INFO] [stdout] test tools::tests::search_finds_matching_lines ... ok [INFO] [stdout] test tools::tests::search_includes_repo_docs_subdir ... ok [INFO] [stdout] test tools::tests::overview_with_repo_path ... ok [INFO] [stdout] test tools::tests::search_includes_repo_path ... ok [INFO] [stdout] test tools::tests::list_projects_counts_docs ... ok [INFO] [stdout] test mcp::tests::dispatch_search_ranked_fallback_to_grep ... ok [INFO] [stdout] test index::tests::check_doc_changes_after_modify ... ok [INFO] [stdout] test index::tests::is_index_stale_after_file_change ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 245 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.98s [INFO] [stdout] [INFO] [stderr] Doc-tests alcove [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] running `Command { std: "docker" "inspect" "9858e8966238ecec3af040c3482df5647d26c8bf9cbaf5b8434168a567a9d544", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9858e8966238ecec3af040c3482df5647d26c8bf9cbaf5b8434168a567a9d544", kill_on_drop: false }` [INFO] [stdout] 9858e8966238ecec3af040c3482df5647d26c8bf9cbaf5b8434168a567a9d544