[INFO] cloning repository https://github.com/vu1n/canopy [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vu1n/canopy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvu1n%2Fcanopy", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvu1n%2Fcanopy'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6efe5969ffea57a93f6c7a855716c874175912b3 [INFO] testing vu1n/canopy against master#562dee4820c458d823175268e41601d4c060588a for pr-154210 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvu1n%2Fcanopy" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/vu1n/canopy [INFO] finished tweaking git repo https://github.com/vu1n/canopy [INFO] tweaked toml for git repo https://github.com/vu1n/canopy written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/vu1n/canopy on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/vu1n/canopy 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tree-sitter-language v0.1.6 [INFO] [stderr] Downloaded streaming-iterator v0.1.9 [INFO] [stderr] Downloaded zmij v1.0.17 [INFO] [stderr] Downloaded tree-sitter-go v0.23.4 [INFO] [stderr] Downloaded tree-sitter-javascript v0.23.1 [INFO] [stderr] Downloaded fancy-regex v0.13.0 [INFO] [stderr] Downloaded pulldown-cmark v0.12.2 [INFO] [stderr] Downloaded rusqlite v0.33.0 [INFO] [stderr] Downloaded tree-sitter-python v0.23.6 [INFO] [stderr] Downloaded webpki-roots v1.0.5 [INFO] [stderr] Downloaded tree-sitter v0.25.10 [INFO] [stderr] Downloaded tree-sitter-rust v0.24.0 [INFO] [stderr] Downloaded tree-sitter-typescript v0.23.2 [INFO] [stderr] Downloaded tiktoken-rs v0.6.0 [INFO] [stderr] Downloaded libsqlite3-sys v0.31.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 332ded0fc7735a735db7400f1274d7a4071b6b7f21fd74ef1805ad48a5c7539c [INFO] running `Command { std: "docker" "start" "-a" "332ded0fc7735a735db7400f1274d7a4071b6b7f21fd74ef1805ad48a5c7539c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "332ded0fc7735a735db7400f1274d7a4071b6b7f21fd74ef1805ad48a5c7539c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "332ded0fc7735a735db7400f1274d7a4071b6b7f21fd74ef1805ad48a5c7539c", kill_on_drop: false }` [INFO] [stdout] 332ded0fc7735a735db7400f1274d7a4071b6b7f21fd74ef1805ad48a5c7539c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e53fb4495d20a0e77efcf49a8602417ce6d0c2b0a491c165de6d0e4381710839 [INFO] running `Command { std: "docker" "start" "-a" "e53fb4495d20a0e77efcf49a8602417ce6d0c2b0a491c165de6d0e4381710839", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling find-msvc-tools v0.1.8 [INFO] [stderr] Compiling tree-sitter-language v0.1.6 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling zmij v1.0.17 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling cc v1.2.54 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling anyhow v1.0.100 [INFO] [stderr] Compiling bit-vec v0.6.3 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling bit-set v0.5.3 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling pulldown-cmark v0.12.2 [INFO] [stderr] Compiling getopts v0.2.24 [INFO] [stderr] Compiling cpufeatures v0.2.17 [INFO] [stderr] Compiling streaming-iterator v0.1.9 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling pulldown-cmark-escape v0.11.0 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling webpki-roots v1.0.5 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling clap_lex v0.7.7 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling clap_builder v4.5.54 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling hashlink v0.10.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling libsqlite3-sys v0.31.0 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling tree-sitter-javascript v0.23.1 [INFO] [stderr] Compiling tree-sitter-go v0.23.4 [INFO] [stderr] Compiling tree-sitter-typescript v0.23.2 [INFO] [stderr] Compiling tree-sitter-python v0.23.6 [INFO] [stderr] Compiling tree-sitter-rust v0.24.0 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling uuid v1.20.0 [INFO] [stderr] Compiling colored v3.1.1 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling tree-sitter v0.25.10 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling fancy-regex v0.13.0 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling tiktoken-rs v0.6.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling ignore v0.4.25 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling clap_derive v4.5.49 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling clap v4.5.54 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling rusqlite v0.33.0 [INFO] [stderr] Compiling canopy-core v0.4.0 (/opt/rustwide/workdir/canopy-core) [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling canopy-client v0.4.0 (/opt/rustwide/workdir/canopy-client) [INFO] [stderr] Compiling canopy-service v0.4.0 (/opt/rustwide/workdir/canopy-service) [INFO] [stderr] Compiling canopy-cli v0.4.0 (/opt/rustwide/workdir/canopy-cli) [INFO] [stderr] Compiling canopy-mcp v0.4.0 (/opt/rustwide/workdir/canopy-mcp) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 36s [INFO] running `Command { std: "docker" "inspect" "e53fb4495d20a0e77efcf49a8602417ce6d0c2b0a491c165de6d0e4381710839", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e53fb4495d20a0e77efcf49a8602417ce6d0c2b0a491c165de6d0e4381710839", kill_on_drop: false }` [INFO] [stdout] e53fb4495d20a0e77efcf49a8602417ce6d0c2b0a491c165de6d0e4381710839 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 97e2f77efa8ed26b16e8793ae5e6e9e92609e51290e2ac154d9a51f94566626a [INFO] running `Command { std: "docker" "start" "-a" "97e2f77efa8ed26b16e8793ae5e6e9e92609e51290e2ac154d9a51f94566626a", kill_on_drop: false }` [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling rusqlite v0.33.0 [INFO] [stderr] Compiling pulldown-cmark v0.12.2 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling canopy-core v0.4.0 (/opt/rustwide/workdir/canopy-core) [INFO] [stderr] Compiling tempfile v3.24.0 [INFO] [stderr] Compiling canopy-client v0.4.0 (/opt/rustwide/workdir/canopy-client) [INFO] [stderr] Compiling canopy-service v0.4.0 (/opt/rustwide/workdir/canopy-service) [INFO] [stderr] Compiling canopy-cli v0.4.0 (/opt/rustwide/workdir/canopy-cli) [INFO] [stderr] Compiling canopy-mcp v0.4.0 (/opt/rustwide/workdir/canopy-mcp) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 33.40s [INFO] running `Command { std: "docker" "inspect" "97e2f77efa8ed26b16e8793ae5e6e9e92609e51290e2ac154d9a51f94566626a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "97e2f77efa8ed26b16e8793ae5e6e9e92609e51290e2ac154d9a51f94566626a", kill_on_drop: false }` [INFO] [stdout] 97e2f77efa8ed26b16e8793ae5e6e9e92609e51290e2ac154d9a51f94566626a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 1bc1567a163d2bdb44e7a42c1f3e12c9a7d05f3c9bab2a513824be3858cd2291 [INFO] running `Command { std: "docker" "start" "-a" "1bc1567a163d2bdb44e7a42c1f3e12c9a7d05f3c9bab2a513824be3858cd2291", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.45s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/canopy-02b5c6c7bc6b5a76) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/canopy_client-e8888437d33e1133) [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 54 tests [INFO] [stdout] test dirty::tests::test_classify_xy ... ok [INFO] [stdout] test dirty::tests::test_parse_ordinary_deleted ... ok [INFO] [stdout] test dirty::tests::test_parse_ordinary_modified ... ok [INFO] [stdout] test dirty::tests::test_parse_renamed ... ok [INFO] [stdout] test dirty::tests::test_parse_ordinary_added ... ok [INFO] [stdout] test dirty::tests::test_parse_untracked ... ok [INFO] [stdout] test merge::tests::test_merge_drops_all_service_handles_for_dirty_files ... ok [INFO] [stdout] test merge::tests::test_dirty_file_drops_all_service_handles ... ok [INFO] [stdout] test dirty::tests::test_parse_empty ... ok [INFO] [stdout] test dirty::tests::test_parse_unmerged ... ok [INFO] [stdout] test dirty::tests::test_compute_fingerprint_deterministic ... ok [INFO] [stdout] test merge::tests::test_merge_empty ... ok [INFO] [stdout] test merge::tests::test_merge_dedupes_duplicate_handles ... ok [INFO] [stdout] test predict::tests::test_extract_extensions ... ok [INFO] [stdout] test predict::tests::test_extract_query_text_empty ... ok [INFO] [stdout] test predict::tests::test_extract_query_text_pattern ... ok [INFO] [stdout] test dirty::tests::test_dirty_state_is_clean ... ok [INFO] [stdout] test predict::tests::test_predict_auth_query ... ok [INFO] [stdout] test merge::tests::test_merge_keeps_all_handles_for_clean_files ... ok [INFO] [stdout] test dirty::tests::test_parse_multiple ... ok [INFO] [stdout] test predict::tests::test_extract_query_text_patterns ... ok [INFO] [stdout] test dirty::tests::test_dirty_state_is_dirty ... ok [INFO] [stdout] test provenance::tests::get_returns_none_for_missing_handle ... ok [INFO] [stdout] test provenance::tests::invalidate_repo_removes_matching_entries ... ok [INFO] [stdout] test provenance::tests::mark_expanded_and_was_recently_expanded ... ok [INFO] [stdout] test provenance::tests::query_event_record_and_lookup ... ok [INFO] [stdout] test provenance::tests::record_and_get_returns_provenance ... ok [INFO] [stdout] test provenance::tests::record_overwrites_provenance_without_adding_to_order ... ok [INFO] [stdout] test runtime::tests::test_list_repos_without_service ... ok [INFO] [stdout] test runtime::tests::test_reindex_by_id_without_service ... ok [INFO] [stdout] test runtime::tests::test_standalone_no_service ... ok [INFO] [stdout] test runtime::tests::test_service_status_without_service ... ok [INFO] [stdout] test runtime::tests::test_service_mode ... ok [INFO] [stdout] test service_client::tests::expand_response_deserialization ... ok [INFO] [stdout] test service_client::tests::is_error_code_matches_service_error ... ok [INFO] [stdout] test service_client::tests::expand_request_serialization ... ok [INFO] [stdout] test service_client::tests::is_error_code_returns_false_for_non_service_errors ... ok [INFO] [stdout] test service_client::tests::query_request_serialization ... ok [INFO] [stdout] test service_client::tests::reindex_response_deserialization ... ok [INFO] [stdout] test service_client::tests::reindex_response_without_commit_sha ... ok [INFO] [stdout] test service_client::tests::service_client_new_preserves_url_without_trailing_slash ... ok [INFO] [stdout] test service_client::tests::evidence_pack_request_nests_config ... ok [INFO] [stdout] test service_client::tests::service_client_stores_api_key ... ok [INFO] [stdout] test service_client::tests::service_client_new_trims_trailing_slash ... ok [INFO] [stdout] test predict::tests::test_fallback_on_no_keywords ... ok [INFO] [stdout] test service_client::tests::add_repo_request_skips_none_name ... ok [INFO] [stdout] test runtime::tests::test_provenance_eviction ... ok [INFO] [stdout] test predict::tests::test_predict_database_query ... ok [INFO] [stdout] test runtime::tests::test_standalone_query_empty_index_returns_empty ... ok [INFO] [stdout] test predict::tests::test_predict_with_feedback_reranks ... ok [INFO] [stdout] test provenance::tests::eviction_at_provenance_cap ... ok [INFO] [stdout] test runtime::tests::test_expand_feedback_records_without_provenance ... ok [INFO] [stdout] test runtime::tests::test_standalone_query_returns_results ... ok [INFO] [stdout] test runtime::tests::test_standalone_expand_after_query ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.84s [INFO] [stdout] [INFO] [stderr] Running tests/service_integration.rs (/opt/rustwide/target/debug/deps/service_integration-108834eb2e5720b7) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test test_service_query_returns_service_handles ... ok [INFO] [stdout] test test_dirty_merge_keeps_service_handles_for_clean_files ... ok [INFO] [stdout] test test_dirty_merge_replaces_handles_for_modified_file ... ok [INFO] [stdout] test test_expand_service_handles ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.36s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/canopy_core-c8d8194433980293) [INFO] [stdout] [INFO] [stdout] running 162 tests [INFO] [stdout] test capped_map::tests::evicts_oldest_on_overflow ... ok [INFO] [stdout] test config::tests::test_parse_duration ... ok [INFO] [stdout] test document::tests::node_metadata_from_json_invalid_returns_none ... ok [INFO] [stdout] test document::tests::node_type_from_int_invalid_returns_none ... ok [INFO] [stdout] test document::tests::ref_type_as_str_and_parse_roundtrip ... ok [INFO] [stdout] test config::tests::test_default_config_roundtrips ... ok [INFO] [stdout] test capped_map::tests::update_existing_does_not_evict ... ok [INFO] [stdout] test error::tests::canopy_error_display_invalid_handle ... ok [INFO] [stdout] test document::tests::node_metadata_json_roundtrip_all_variants ... ok [INFO] [stdout] test error::tests::canopy_error_display_stale_index ... ok [INFO] [stdout] test error::tests::canopy_error_from_io_error ... ok [INFO] [stdout] test error::tests::canopy_error_display_query_parse ... ok [INFO] [stdout] test error::tests::error_envelope_internal ... ok [INFO] [stdout] test document::tests::searchable_name_returns_correct_values ... ok [INFO] [stdout] test error::tests::canopy_error_display_stale_generation ... ok [INFO] [stdout] test document::tests::node_type_as_int_roundtrip ... ok [INFO] [stdout] test error::tests::error_envelope_new_and_fields ... ok [INFO] [stdout] test error::tests::error_envelope_stale_generation ... ok [INFO] [stdout] test error::tests::error_envelope_serialize_roundtrip ... ok [INFO] [stdout] test error::tests::canopy_error_display_schema_version_mismatch ... ok [INFO] [stdout] test config::tests::test_ttl_duration ... ok [INFO] [stdout] test document::tests::node_metadata_json_roundtrip_function ... ok [INFO] [stdout] test document::tests::node_metadata_json_roundtrip_section ... ok [INFO] [stdout] test document::tests::ref_type_parse_unknown_returns_none ... ok [INFO] [stdout] test generation::tests::test_generation_next ... ok [INFO] [stdout] test error::tests::canopy_error_display_service_error ... ok [INFO] [stdout] test document::tests::node_type_as_str_values ... ok [INFO] [stdout] test generation::tests::test_generation_ordering ... ok [INFO] [stdout] test generation::tests::test_generation_serialize ... ok [INFO] [stdout] test generation::tests::test_shard_status_serialize ... ok [INFO] [stdout] test handle::tests::test_handle_id_creation ... ok [INFO] [stdout] test handle::tests::test_generate_preview ... ok [INFO] [stdout] test git::tests::head_commit_sha_on_this_repo ... ok [INFO] [stdout] test git::tests::head_commit_sha_nonexistent_dir_returns_none ... ok [INFO] [stdout] test handle::tests::test_handle_id_parse ... ok [INFO] [stdout] test handle::tests::test_safe_slice ... ok [INFO] [stdout] test git::tests::head_commit_sha_non_git_dir_returns_none ... ok [INFO] [stdout] test capped_map::tests::capped_set_eviction ... ok [INFO] [stdout] test generation::tests::test_generation_from_value ... ok [INFO] [stdout] test generation::tests::test_generation_new ... ok [INFO] [stdout] test generation::tests::test_repo_shard_roundtrip ... ok [INFO] [stdout] test handle::tests::test_handle_id_display ... ok [INFO] [stdout] test index::file_discovery::tests::file_discovery_name_values ... ok [INFO] [stdout] test index::file_discovery::tests::file_discovery_detect_is_cached ... ok [INFO] [stdout] test index::file_discovery::tests::file_discovery_detect_returns_valid_backend ... ok [INFO] [stdout] test feedback::tests::glob_scores_decay_with_age ... ok [INFO] [stdout] test feedback::tests::compute_metrics_with_known_data ... ok [INFO] [stdout] test feedback::tests::glob_scores_reflect_expand_rate ... ok [INFO] [stdout] test feedback::tests::node_type_priors_distinguish_types ... ok [INFO] [stdout] test index::pipeline::tests::sequential_threshold_is_64 ... ok [INFO] [stdout] test index::search::tests::code_type_params_returns_four_code_types ... ok [INFO] [stdout] test index::search::tests::collect_row_results_all_ok ... ok [INFO] [stdout] test index::search::tests::collect_row_results_empty_input ... ok [INFO] [stdout] test index::search::tests::collect_row_results_propagates_first_error ... ok [INFO] [stdout] test index::search::tests::escape_fts5_plain_query_unchanged ... ok [INFO] [stdout] test index::search::tests::escape_fts5_special_chars_quoted ... ok [INFO] [stdout] test index::search::tests::handle_from_cache_entry_roundtrip ... ok [INFO] [stdout] test index::symbol_cache::tests::add_and_lookup_symbol_cache ... ok [INFO] [stdout] test index::symbol_cache::tests::add_multiple_entries_same_symbol_name ... ok [INFO] [stdout] test index::symbol_cache::tests::remove_file_clears_entries_and_reverse_index ... ok [INFO] [stdout] test index::symbol_cache::tests::remove_nonexistent_file_is_noop ... ok [INFO] [stdout] test feedback::tests::prune_removes_expired_rows_and_cascades_handles ... ok [INFO] [stdout] test index::file_discovery::tests::walk_files_finds_matching_files ... ok [INFO] [stdout] test feedback::tests::record_and_score_roundtrip ... ok [INFO] [stdout] test index::file_discovery::tests::walk_files_no_matches_returns_empty ... ok [INFO] [stdout] test index::pipeline::tests::batch_load_metadata_empty_db ... ok [INFO] [stdout] test parse::markdown::tests::parse_empty_input ... ok [INFO] [stdout] test parse::markdown::tests::parse_fenced_code_blocks ... ok [INFO] [stdout] test parse::markdown::tests::parse_paragraphs_and_line_ranges ... ok [INFO] [stdout] test parse::markdown::tests::parse_sections_with_headings ... ok [INFO] [stdout] test parse::references::tests::empty_source_yields_no_references ... ok [INFO] [stdout] test parse::references::tests::javascript_import_and_call_references ... ok [INFO] [stdout] test parse::references::tests::python_import_and_call_references ... ok [INFO] [stdout] test parse::references::tests::rust_call_and_use_references ... ok [INFO] [stdout] test parse::tests::test_estimate_tokens ... ok [INFO] [stdout] test index::expand::tests::expand_nonexistent_handle_returns_error ... ok [INFO] [stdout] test parse::tests::test_parse_chunks ... ok [INFO] [stdout] test parse::tests::test_parse_markdown ... ok [INFO] [stdout] test parse::tests::test_parse_rust_code ... ok [INFO] [stdout] test query::dsl::tests::parse_children_named_extracts_both_args ... ok [INFO] [stdout] test query::dsl::tests::parse_deeply_nested_structure ... ok [INFO] [stdout] test query::dsl::tests::parse_empty_input_returns_error ... ok [INFO] [stdout] test query::dsl::tests::parse_string_with_escape_sequences ... ok [INFO] [stdout] test query::evidence::tests::build_evidence_pack_empty_handles_returns_default_guidance ... ok [INFO] [stdout] test query::evidence::tests::build_evidence_pack_file_summaries_aggregate_correctly ... ok [INFO] [stdout] test query::evidence::tests::build_evidence_pack_respects_max_per_file ... ok [INFO] [stdout] test query::evidence::tests::guidance_confidence_bands_are_correct ... ok [INFO] [stdout] test query::evidence::tests::reorder_expand_suggestions_demotes_recent ... ok [INFO] [stdout] test query::executor::tests::dedupe_handles_removes_duplicate_ids ... ok [INFO] [stdout] test query::executor::tests::expanded_handle_ids_returns_only_expanded ... ok [INFO] [stdout] test query::executor::tests::expanded_stats_counts_only_content_handles ... ok [INFO] [stdout] test query::executor::tests::extract_query_terms_deduplicates_and_lowercases ... ok [INFO] [stdout] test index::tests::test_mtime_captured_at_read_time ... ok [INFO] [stdout] test query::executor::tests::extract_query_terms_splits_on_non_alphanumeric ... ok [INFO] [stdout] test query::params::tests::has_search_target_detects_all_fields ... ok [INFO] [stdout] test query::params::tests::parse_kind_handles_variants ... ok [INFO] [stdout] test query::params::tests::pattern_fallback_returns_none_for_single_term ... ok [INFO] [stdout] test query::params::tests::pattern_fallback_returns_none_when_symbol_set ... ok [INFO] [stdout] test query::params::tests::pattern_fallback_splits_multi_term_pattern ... ok [INFO] [stdout] test query::params::tests::split_terms_deduplicates_and_lowercases ... ok [INFO] [stdout] test query::executor::tests::extract_query_terms_nested_in_file ... ok [INFO] [stdout] test query::params::tests::split_terms_splits_on_punctuation_keeps_underscore ... ok [INFO] [stdout] test query::params::tests::to_options_mirrors_params ... ok [INFO] [stdout] test query::params::tests::to_query_definition_kind_requires_symbol ... ok [INFO] [stdout] test query::params::tests::to_query_definition_kind_with_parent_produces_children_named ... ok [INFO] [stdout] test query::params::tests::to_query_glob_and_limit_wrap_correctly ... ok [INFO] [stdout] test parse::tests::test_file_type_detection ... ok [INFO] [stdout] test query::params::tests::split_terms_empty_input ... ok [INFO] [stdout] test index::expand::tests::status_reports_indexed_files ... ok [INFO] [stdout] test query::params::tests::to_query_reference_kind_produces_references ... ok [INFO] [stdout] test query::params::tests::to_query_rejects_both_pattern_and_patterns ... ok [INFO] [stdout] test query::params::tests::to_text_concatenates_all_fields ... ok [INFO] [stdout] test index::expand::tests::expand_indexed_handle_returns_content ... ok [INFO] [stdout] test index::expand::tests::expand_with_details_returns_metadata ... ok [INFO] [stdout] test index::pipeline::tests::index_stats_fields_correct ... ok [INFO] [stdout] test query::tests::test_evidence_pack_guidance_requests_refine_when_empty ... ok [INFO] [stdout] test index::tests::test_invalidate_all_clears_reverse_index ... ok [INFO] [stdout] test query::tests::test_evidence_pack_guidance_stops_querying_when_signal_is_strong ... ok [INFO] [stdout] test query::tests::test_parse_code ... ok [INFO] [stdout] test query::tests::test_parse_error_missing_paren ... ok [INFO] [stdout] test index::expand::tests::invalidate_glob_removes_matching_files ... ok [INFO] [stdout] test query::tests::test_parse_error_unknown_op ... ok [INFO] [stdout] test query::tests::test_parse_error_unterminated_string ... ok [INFO] [stdout] test query::tests::test_parse_escaped_string ... ok [INFO] [stdout] test query::tests::test_parse_grep ... ok [INFO] [stdout] test query::tests::test_parse_file ... ok [INFO] [stdout] test query::tests::test_parse_in_file ... ok [INFO] [stdout] test query::tests::test_parse_limit ... ok [INFO] [stdout] test query::tests::test_parse_intersect ... ok [INFO] [stdout] test query::tests::test_parse_section ... ok [INFO] [stdout] test query::tests::test_parse_union ... ok [INFO] [stdout] test query::tests::test_query_params_empty_patterns_returns_error ... ok [INFO] [stdout] test query::tests::test_parse_nested ... ok [INFO] [stdout] test query::tests::test_query_params_empty_returns_error ... ok [INFO] [stdout] test query::tests::test_query_params_multi_pattern_default_match_mode ... ok [INFO] [stdout] test query::tests::test_query_params_multi_pattern_match_mode_all ... ok [INFO] [stdout] test query::tests::test_query_params_section_search ... ok [INFO] [stdout] test query::tests::test_query_params_single_pattern ... ok [INFO] [stdout] test query::tests::test_query_params_with_expand_budget ... ok [INFO] [stdout] test query::tests::test_query_params_with_glob ... ok [INFO] [stdout] test index::pipeline::tests::batch_load_metadata_after_indexing ... ok [INFO] [stdout] test index::pipeline::tests::reindex_skips_unchanged_files ... ok [INFO] [stdout] test index::tests::test_symbol_cache_by_file_consistency ... ok [INFO] [stdout] test scoring::tests::learned_priors_override_default_type_weight ... ok [INFO] [stdout] test scoring::tests::score_prefers_lower_token_cost_when_other_factors_close ... ok [INFO] [stdout] test index::expand::tests::invalidate_all_clears_everything ... ok [INFO] [stdout] test scoring::tests::score_prefers_query_match ... ok [INFO] [stdout] test scoring::tests::selection_limits_expansions_per_file ... ok [INFO] [stdout] test scoring::tests::selection_respects_budget ... ok [INFO] [stdout] test scoring::tests::selection_skips_nearby_duplicate_ranges_in_same_file ... ok [INFO] [stdout] test query::tests::test_query_params_symbol_search ... ok [INFO] [stdout] test query::tests::test_query_params_with_limit ... ok [INFO] [stdout] test index::tests::test_sequential_path_indexes_small_batch ... ok [INFO] [stdout] test query::tests::execute_limit_caps_results ... ok [INFO] [stdout] test query::tests::execute_grep_returns_matching_handles ... ok [INFO] [stdout] test query::tests::test_partial_auto_expand_reports_counts ... ok [INFO] [stdout] test query::tests::execute_union_merges_results ... ok [INFO] [stdout] test query::tests::execute_query_with_expand_budget ... ok [INFO] [stdout] test query::tests::execute_intersect_narrows_results ... ok [INFO] [stdout] test query::tests::execute_in_file_scopes_to_glob ... ok [INFO] [stdout] test index::tests::test_pipeline_path_indexes_large_batch ... ok [INFO] [stdout] test index::pipeline::tests::index_detects_modified_files ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 162 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.28s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/canopy_mcp-343c0818b4bdfc5d) [INFO] [stdout] [INFO] [stdout] running 17 tests [INFO] [stdout] test tests::handle_initialize_returns_protocol_version ... ok [INFO] [stdout] test tests::handle_request_notification_returns_none ... ok [INFO] [stdout] test tests::handle_request_parse_error_returns_json_rpc_error ... ok [INFO] [stdout] test tests::handle_request_initialize_succeeds ... ok [INFO] [stdout] test tools::tests::build_query_params_dsl_query ... ok [INFO] [stdout] test tools::tests::build_query_params_parent ... ok [INFO] [stdout] test tools::tests::build_query_params_patterns_array ... ok [INFO] [stdout] test tools::tests::build_query_params_symbol ... ok [INFO] [stdout] test tools::tests::build_query_params_combined_fields ... ok [INFO] [stdout] test tools::tests::build_query_params_empty_object_fails ... ok [INFO] [stdout] test tools::tests::build_query_params_match_mode ... ok [INFO] [stdout] test tests::handle_tools_list_returns_tools ... ok [INFO] [stdout] test tools::tests::build_query_params_no_search_target_fails ... ok [INFO] [stdout] test tools::tests::build_query_params_dsl_with_custom_limit ... ok [INFO] [stdout] test tests::handle_request_unknown_method_returns_error ... ok [INFO] [stdout] test tools::tests::build_query_params_section ... ok [INFO] [stdout] test tools::tests::build_query_params_pattern ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/canopy_service-49516ebfd4eb2106) [INFO] [stdout] [INFO] [stdout] running 47 tests [INFO] [stdout] test error::tests::from_canopy_handle_not_found ... ok [INFO] [stdout] test error::tests::from_canopy_other_error_maps_to_internal ... ok [INFO] [stdout] test error::tests::error_envelope_serializes_to_json ... ok [INFO] [stdout] test error::tests::repo_not_found_has_404_status ... ok [INFO] [stdout] test error::tests::from_canopy_stale_generation ... ok [INFO] [stdout] test error::tests::handle_not_found_includes_handle_id ... ok [INFO] [stdout] test error::tests::repo_not_ready_has_503_status ... ok [INFO] [stdout] test error::tests::internal_has_500_status ... ok [INFO] [stdout] test evidence::planning::tests::pattern_fallback_with_symbol_returns_none ... ok [INFO] [stdout] test evidence::planning::tests::pattern_fallback_single_term_returns_none ... ok [INFO] [stdout] test evidence::planning::tests::pattern_fallback_multi_term_splits ... ok [INFO] [stdout] test evidence::planning::tests::query_params_to_text_empty ... ok [INFO] [stdout] test error::tests::stale_has_conflict_status ... ok [INFO] [stdout] test evidence::planning::tests::query_params_to_text_pattern ... ok [INFO] [stdout] test evidence::planning::tests::symbol_followup_params_builds_definition_query ... ok [INFO] [stdout] test evidence::tests::normalize_clamps_limit ... ok [INFO] [stdout] test evidence::tests::normalize_defaults ... ok [INFO] [stdout] test evidence::symbol_extraction::tests::prefers_identifiers ... ok [INFO] [stdout] test evidence::tests::normalize_force_preview_only ... ok [INFO] [stdout] test evidence::tests::reorder_expand_suggestions_no_recent ... ok [INFO] [stdout] test evidence::tests::split_terms_deduplicates ... ok [INFO] [stdout] test evidence::tests::split_terms_basic ... ok [INFO] [stdout] test evidence::tests::split_terms_empty ... ok [INFO] [stdout] test evidence::tests::split_terms_special_chars ... ok [INFO] [stdout] test metrics::tests::metrics_response_serializes_to_json ... ok [INFO] [stdout] test metrics::tests::top_n_sorted_handles_empty_map ... ok [INFO] [stdout] test metrics::tests::top_n_sorted_truncates_to_n ... ok [INFO] [stdout] test evidence::planning::tests::query_params_to_text_symbol ... ok [INFO] [stdout] test routes::query::tests::query_pending_repo_returns_error ... ok [INFO] [stdout] test routes::expand::tests::expand_stale_generation_returns_error ... ok [INFO] [stdout] test metrics::tests::top_n_sorted_returns_sorted_by_count_descending ... ok [INFO] [stdout] test evidence::tests::reorder_expand_suggestions_moves_recent_to_end ... ok [INFO] [stdout] test evidence::symbol_extraction::tests::skips_short_tokens ... ok [INFO] [stdout] test routes::repos::tests::reindex_coalesces_concurrent_requests ... ok [INFO] [stdout] test routes::repos::tests::add_repo_rejects_non_git_dir ... ok [INFO] [stdout] test routes::query::tests::query_unknown_repo_returns_error ... ok [INFO] [stdout] test routes::repos::tests::status_includes_service_name ... ok [INFO] [stdout] test feedback_recording::tests::try_record_feedback_expand_returns_false_when_no_store ... ok [INFO] [stdout] test feedback_recording::tests::try_record_feedback_query_returns_none_when_no_store ... ok [INFO] [stdout] test routes::expand::tests::expand_unknown_repo_returns_error ... ok [INFO] [stdout] test routes::repos::tests::reindex_unknown_repo_returns_error ... ok [INFO] [stdout] test state::tests::query_cache_evicts_fifo_with_duplicate_keys ... ok [INFO] [stdout] test routes::repos::tests::list_repos_empty_initially ... ok [INFO] [stdout] test state::tests::query_cache_flushes_on_generation_change ... ok [INFO] [stdout] test routes::repos::tests::add_repo_succeeds_for_git_repo ... ok [INFO] [stdout] test routes::repos::tests::list_repos_after_add ... ok [INFO] [stdout] test routes::repos::tests::add_repo_is_idempotent ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 47 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-f57093948447965c) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test test_service_lifecycle ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.07s [INFO] [stdout] [INFO] [stderr] Doc-tests canopy_client [INFO] [stderr] Doc-tests canopy_core [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] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test canopy-core/src/index/mod.rs - index::RepoIndex::query_params (line 276) ... ignored [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "1bc1567a163d2bdb44e7a42c1f3e12c9a7d05f3c9bab2a513824be3858cd2291", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1bc1567a163d2bdb44e7a42c1f3e12c9a7d05f3c9bab2a513824be3858cd2291", kill_on_drop: false }` [INFO] [stdout] 1bc1567a163d2bdb44e7a42c1f3e12c9a7d05f3c9bab2a513824be3858cd2291