[INFO] cloning repository https://github.com/QuentinMallet/agentic-kb
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/QuentinMallet/agentic-kb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FQuentinMallet%2Fagentic-kb", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FQuentinMallet%2Fagentic-kb'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5ab22984f412d8f2d3e38ab138ff5d810f70c38c
[INFO] checking QuentinMallet/agentic-kb against c9ff496891c278ad660bc0ab85c1f0b72059464a for pr-160491
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FQuentinMallet%2Fagentic-kb" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/QuentinMallet/agentic-kb
[INFO] finished tweaking git repo https://github.com/QuentinMallet/agentic-kb
[INFO] tweaked toml for git repo https://github.com/QuentinMallet/agentic-kb written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/QuentinMallet/agentic-kb on toolchain c9ff496891c278ad660bc0ab85c1f0b72059464a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c9ff496891c278ad660bc0ab85c1f0b72059464a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/QuentinMallet/agentic-kb 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" "+c9ff496891c278ad660bc0ab85c1f0b72059464a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7cb2c3a2d18098998831d7091f5743368fc88831c0f78a9bc5ac6ea8aeba9128
[INFO] running `Command { std: "docker" "start" "7cb2c3a2d18098998831d7091f5743368fc88831c0f78a9bc5ac6ea8aeba9128", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7cb2c3a2d18098998831d7091f5743368fc88831c0f78a9bc5ac6ea8aeba9128", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7cb2c3a2d18098998831d7091f5743368fc88831c0f78a9bc5ac6ea8aeba9128" "/opt/rustwide/cargo-home/bin/cargo" "+c9ff496891c278ad660bc0ab85c1f0b72059464a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7cb2c3a2d18098998831d7091f5743368fc88831c0f78a9bc5ac6ea8aeba9128", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7cb2c3a2d18098998831d7091f5743368fc88831c0f78a9bc5ac6ea8aeba9128" "/opt/rustwide/cargo-home/bin/cargo" "+c9ff496891c278ad660bc0ab85c1f0b72059464a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling pulp v0.22.2
[INFO] [stderr]     Checking raw-cpuid v11.6.0
[INFO] [stderr]    Compiling dyn-stack-macros v0.1.3
[INFO] [stderr]     Checking reborrow v0.5.5
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking pulp-wasm-simd-flag v0.1.0
[INFO] [stderr]    Compiling seq-macro v0.3.6
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]    Compiling openssl-sys v0.9.116
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]    Compiling onig_sys v69.9.3
[INFO] [stderr]     Checking gimli v0.32.3
[INFO] [stderr]     Checking yoke v0.8.2
[INFO] [stderr]    Compiling eyre v0.6.12
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]    Compiling openssl v0.10.80
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]    Compiling owo-colors v4.3.0
[INFO] [stderr]     Checking zip v7.2.0
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]    Compiling fs-err v3.3.0
[INFO] [stderr]     Checking winnow v1.0.3
[INFO] [stderr]     Checking rustc-demangle v0.1.27
[INFO] [stderr]     Checking safetensors v0.7.0
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking indenter v0.3.4
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]    Compiling esaxx-rs v0.1.10
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking dyn-stack v0.13.2
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]    Compiling monostate-impl v0.1.18
[INFO] [stderr]     Checking serde_spanned v1.1.1
[INFO] [stderr]     Checking toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]     Checking unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling macro_rules_attribute-proc_macro v0.2.2
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking addr2line v0.25.1
[INFO] [stderr]     Checking compact_str v0.9.0
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking macro_rules_attribute v0.2.2
[INFO] [stderr]     Checking monostate v0.1.18
[INFO] [stderr]     Checking webpki-roots v0.26.11
[INFO] [stderr]     Checking secrecy v0.10.3
[INFO] [stderr]     Checking dary_heap v0.3.9
[INFO] [stderr]     Checking serde_plain v1.0.2
[INFO] [stderr]     Checking rayon-cond v0.4.0
[INFO] [stderr]     Checking arc-swap v1.9.1
[INFO] [stderr]    Compiling abscissa_derive v0.9.0
[INFO] [stderr]     Checking unicode-normalization-alignments v0.1.12
[INFO] [stderr]     Checking semver v1.0.28
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking spm_precompiled v0.1.4
[INFO] [stderr]     Checking unicode_categories v0.1.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking canonical-path v2.0.2
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking fancy-regex v0.17.0
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking uuid v1.23.1
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking fs2 v0.4.3
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking rusty-fork v0.3.1
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking toml v0.9.12+spec-1.1.0
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking rand_xorshift v0.4.0
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking unarray v0.1.4
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]     Checking onig v6.5.3
[INFO] [stderr]     Checking derive_builder v0.20.2
[INFO] [stderr]     Checking color-eyre v0.6.5
[INFO] [stderr]     Checking abscissa_core v0.9.0
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking ureq v2.12.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking rand v0.9.4
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking rand_distr v0.5.1
[INFO] [stderr]     Checking tokenizers v0.21.4
[INFO] [stderr]     Checking proptest v1.11.0
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking gemm-common v0.19.0
[INFO] [stderr]     Checking float8 v0.6.0
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking gemm-f32 v0.19.0
[INFO] [stderr]     Checking gemm-c64 v0.19.0
[INFO] [stderr]     Checking gemm-f64 v0.19.0
[INFO] [stderr]     Checking gemm-c32 v0.19.0
[INFO] [stderr]     Checking gemm-f16 v0.19.0
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking gemm v0.19.0
[INFO] [stderr]     Checking candle-core v0.9.2
[INFO] [stderr]     Checking rusqlite v0.31.0
[INFO] [stderr]     Checking candle-nn v0.9.2
[INFO] [stderr]     Checking candle-transformers v0.9.2
[INFO] [stderr]     Checking kb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/mcp.rs:684:16
[INFO] [stdout]     |
[INFO] [stdout] 684 |     let mode = crate::components::db::EmbedTextMode::from_env();
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:7:60
[INFO] [stdout]     |
[INFO] [stdout]   7 | #![warn(rust_2018_idioms, trivial_casts, unused_lifetimes, unused_qualifications)]
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 684 -     let mode = crate::components::db::EmbedTextMode::from_env();
[INFO] [stdout] 684 +     let mode = db::EmbedTextMode::from_env();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/mcp.rs:687:13
[INFO] [stdout]     |
[INFO] [stdout] 687 |             crate::components::db::entry_embed_text(mode, path, summary, content, tags).len() <= max_chars
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 687 -             crate::components::db::entry_embed_text(mode, path, summary, content, tags).len() <= max_chars
[INFO] [stdout] 687 +             db::entry_embed_text(mode, path, summary, content, tags).len() <= max_chars
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/mcp.rs:699:5
[INFO] [stdout]     |
[INFO] [stdout] 699 |     crate::components::db::check_embed_mode_vintage(&conn, mode);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 699 -     crate::components::db::check_embed_mode_vintage(&conn, mode);
[INFO] [stdout] 699 +     db::check_embed_mode_vintage(&conn, mode);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/mcp.rs:701:20
[INFO] [stdout]     |
[INFO] [stdout] 701 |         let text = crate::components::db::entry_embed_text(mode, path, summary, content, tags);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 701 -         let text = crate::components::db::entry_embed_text(mode, path, summary, content, tags);
[INFO] [stdout] 701 +         let text = db::entry_embed_text(mode, path, summary, content, tags);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `blob_to_f32s` and `f32s_to_blob`
[INFO] [stdout]  --> src/components/db.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     blob_to_f32s, cosine_similarity, decode_emb_blob, decode_f16_blob_into, f32s_to_blob,
[INFO] [stdout]   |     ^^^^^^^^^^^^                                                            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:1847:22
[INFO] [stdout]      |
[INFO] [stdout] 1847 |         ev_rows: Vec<crate::models::Evidence>,
[INFO] [stdout]      |                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1847 -         ev_rows: Vec<crate::models::Evidence>,
[INFO] [stdout] 1847 +         ev_rows: Vec<Evidence>,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:1891:29
[INFO] [stdout]      |
[INFO] [stdout] 1891 |     let mut flat_tasks: Vec<crate::models::Evidence> = Vec::new();
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1891 -     let mut flat_tasks: Vec<crate::models::Evidence> = Vec::new();
[INFO] [stdout] 1891 +     let mut flat_tasks: Vec<Evidence> = Vec::new();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:1920:54
[INFO] [stdout]      |
[INFO] [stdout] 1920 |                 crossbeam_channel::bounded::<(usize, crate::models::Evidence)>(work_chan_cap);
[INFO] [stdout]      |                                                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1920 -                 crossbeam_channel::bounded::<(usize, crate::models::Evidence)>(work_chan_cap);
[INFO] [stdout] 1920 +                 crossbeam_channel::bounded::<(usize, Evidence)>(work_chan_cap);
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/mcp.rs:684:16
[INFO] [stdout]     |
[INFO] [stdout] 684 |     let mode = crate::components::db::EmbedTextMode::from_env();
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:7:60
[INFO] [stdout]     |
[INFO] [stdout]   7 | #![warn(rust_2018_idioms, trivial_casts, unused_lifetimes, unused_qualifications)]
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 684 -     let mode = crate::components::db::EmbedTextMode::from_env();
[INFO] [stdout] 684 +     let mode = db::EmbedTextMode::from_env();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/mcp.rs:687:13
[INFO] [stdout]     |
[INFO] [stdout] 687 |             crate::components::db::entry_embed_text(mode, path, summary, content, tags).len() <= max_chars
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 687 -             crate::components::db::entry_embed_text(mode, path, summary, content, tags).len() <= max_chars
[INFO] [stdout] 687 +             db::entry_embed_text(mode, path, summary, content, tags).len() <= max_chars
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/mcp.rs:699:5
[INFO] [stdout]     |
[INFO] [stdout] 699 |     crate::components::db::check_embed_mode_vintage(&conn, mode);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 699 -     crate::components::db::check_embed_mode_vintage(&conn, mode);
[INFO] [stdout] 699 +     db::check_embed_mode_vintage(&conn, mode);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/mcp.rs:701:20
[INFO] [stdout]     |
[INFO] [stdout] 701 |         let text = crate::components::db::entry_embed_text(mode, path, summary, content, tags);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 701 -         let text = crate::components::db::entry_embed_text(mode, path, summary, content, tags);
[INFO] [stdout] 701 +         let text = db::entry_embed_text(mode, path, summary, content, tags);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1491:39
[INFO] [stdout]      |
[INFO] [stdout] 1491 |             let mut verdict_objs: Vec<serde_json::Value> = Vec::new();
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1491 -             let mut verdict_objs: Vec<serde_json::Value> = Vec::new();
[INFO] [stdout] 1491 +             let mut verdict_objs: Vec<Value> = Vec::new();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1574:39
[INFO] [stdout]      |
[INFO] [stdout] 1574 |             let mut verdict_objs: Vec<serde_json::Value> = Vec::new();
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1574 -             let mut verdict_objs: Vec<serde_json::Value> = Vec::new();
[INFO] [stdout] 1574 +             let mut verdict_objs: Vec<Value> = Vec::new();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1683:35
[INFO] [stdout]      |
[INFO] [stdout] 1683 |             let fwd_verdicts: Vec<serde_json::Value> = items.iter().zip(&entry_ids_a).map(|((_, _, _, v), eid)| {
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1683 -             let fwd_verdicts: Vec<serde_json::Value> = items.iter().zip(&entry_ids_a).map(|((_, _, _, v), eid)| {
[INFO] [stdout] 1683 +             let fwd_verdicts: Vec<Value> = items.iter().zip(&entry_ids_a).map(|((_, _, _, v), eid)| {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1690:35
[INFO] [stdout]      |
[INFO] [stdout] 1690 |             let rev_verdicts: Vec<serde_json::Value> = items.iter().zip(&entry_ids_b).map(|((_, _, _, v), eid)| {
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1690 -             let rev_verdicts: Vec<serde_json::Value> = items.iter().zip(&entry_ids_b).map(|((_, _, _, v), eid)| {
[INFO] [stdout] 1690 +             let rev_verdicts: Vec<Value> = items.iter().zip(&entry_ids_b).map(|((_, _, _, v), eid)| {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1872:9
[INFO] [stdout]      |
[INFO] [stdout] 1872 |         std::fs::create_dir_all(&src_dir).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1872 -         std::fs::create_dir_all(&src_dir).unwrap();
[INFO] [stdout] 1872 +         fs::create_dir_all(&src_dir).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1873:9
[INFO] [stdout]      |
[INFO] [stdout] 1873 |         std::fs::write(src_dir.join("ivk.rs"), cited_content).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1873 -         std::fs::write(src_dir.join("ivk.rs"), cited_content).unwrap();
[INFO] [stdout] 1873 +         fs::write(src_dir.join("ivk.rs"), cited_content).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1948:9
[INFO] [stdout]      |
[INFO] [stdout] 1948 |         std::fs::create_dir_all(&src_dir).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1948 -         std::fs::create_dir_all(&src_dir).unwrap();
[INFO] [stdout] 1948 +         fs::create_dir_all(&src_dir).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1949:9
[INFO] [stdout]      |
[INFO] [stdout] 1949 |         std::fs::write(src_dir.join("env.rs"), cited_content).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1949 -         std::fs::write(src_dir.join("env.rs"), cited_content).unwrap();
[INFO] [stdout] 1949 +         fs::write(src_dir.join("env.rs"), cited_content).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:2253:46
[INFO] [stdout]      |
[INFO] [stdout] 2253 |                 match serde_json::from_str::<serde_json::Value>(&line) {
[INFO] [stdout]      |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2253 -                 match serde_json::from_str::<serde_json::Value>(&line) {
[INFO] [stdout] 2253 +                 match serde_json::from_str::<Value>(&line) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:596:20
[INFO] [stdout]     |
[INFO] [stdout] 596 |         let opts = crate::components::db::SearchOptions {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 596 -         let opts = crate::components::db::SearchOptions {
[INFO] [stdout] 596 +         let opts = db::SearchOptions {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:608:20
[INFO] [stdout]     |
[INFO] [stdout] 608 |         let conn = crate::components::db::open_db(&paths.db).unwrap();
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 608 -         let conn = crate::components::db::open_db(&paths.db).unwrap();
[INFO] [stdout] 608 +         let conn = db::open_db(&paths.db).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:615:23
[INFO] [stdout]     |
[INFO] [stdout] 615 |         let results = crate::components::db::search_entries(&conn, &embedder, "evidence test", &opts).unwrap();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 615 -         let results = crate::components::db::search_entries(&conn, &embedder, "evidence test", &opts).unwrap();
[INFO] [stdout] 615 +         let results = db::search_entries(&conn, &embedder, "evidence test", &opts).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:674:20
[INFO] [stdout]     |
[INFO] [stdout] 674 |         let opts = crate::components::db::SearchOptions {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 674 -         let opts = crate::components::db::SearchOptions {
[INFO] [stdout] 674 +         let opts = db::SearchOptions {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:686:20
[INFO] [stdout]     |
[INFO] [stdout] 686 |         let conn = crate::components::db::open_db(&paths.db).unwrap();
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 686 -         let conn = crate::components::db::open_db(&paths.db).unwrap();
[INFO] [stdout] 686 +         let conn = db::open_db(&paths.db).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:687:23
[INFO] [stdout]     |
[INFO] [stdout] 687 |         let results = crate::components::db::search_entries(
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 687 -         let results = crate::components::db::search_entries(
[INFO] [stdout] 687 +         let results = db::search_entries(
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/commands/search.rs:727:9
[INFO] [stdout]     |
[INFO] [stdout] 727 | /         /// Invariant: arbitrary FTS queries don't panic and FTS keywords
[INFO] [stdout] 728 | |         /// are treated as literals, not operators. Quote/backslash escaping
[INFO] [stdout] 729 | |         /// preserves valid FTS5 syntax.
[INFO] [stdout]     | |_________-------------------------------^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SearchOptions` and `open_db_memory`
[INFO] [stdout]    --> src/commands/search.rs:733:45
[INFO] [stdout]     |
[INFO] [stdout] 733 |                 use crate::components::db::{open_db_memory, search_entries, SearchOptions};
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^                  ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]    --> src/commands/search.rs:737:21
[INFO] [stdout]     |
[INFO] [stdout] 737 |                 use std::path::Path;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:739:27
[INFO] [stdout]     |
[INFO] [stdout] 739 |                 let dir = tempfile::tempdir().unwrap();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 739 -                 let dir = tempfile::tempdir().unwrap();
[INFO] [stdout] 739 +                 let dir = tempdir().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:763:28
[INFO] [stdout]     |
[INFO] [stdout] 763 |                 let conn = crate::components::db::open_db(&paths.db).unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 763 -                 let conn = crate::components::db::open_db(&paths.db).unwrap();
[INFO] [stdout] 763 +                 let conn = db::open_db(&paths.db).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:829:26
[INFO] [stdout]     |
[INFO] [stdout] 829 |         let local_conn = crate::components::db::open_db(&local_paths.db).unwrap();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 829 -         let local_conn = crate::components::db::open_db(&local_paths.db).unwrap();
[INFO] [stdout] 829 +         let local_conn = db::open_db(&local_paths.db).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:843:20
[INFO] [stdout]     |
[INFO] [stdout] 843 |         let opts = crate::components::db::SearchOptions {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 843 -         let opts = crate::components::db::SearchOptions {
[INFO] [stdout] 843 +         let opts = db::SearchOptions {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:856:23
[INFO] [stdout]     |
[INFO] [stdout] 856 |         let peer_db = crate::config::Paths::from_root(std::path::Path::new(&peer_root_str)).db;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 856 -         let peer_db = crate::config::Paths::from_root(std::path::Path::new(&peer_root_str)).db;
[INFO] [stdout] 856 +         let peer_db = Paths::from_root(std::path::Path::new(&peer_root_str)).db;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:857:25
[INFO] [stdout]     |
[INFO] [stdout] 857 |         let peer_conn = crate::components::db::open_db(&peer_db).unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 857 -         let peer_conn = crate::components::db::open_db(&peer_db).unwrap();
[INFO] [stdout] 857 +         let peer_conn = db::open_db(&peer_db).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:858:25
[INFO] [stdout]     |
[INFO] [stdout] 858 |         let peer_opts = crate::components::db::SearchOptions {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 858 -         let peer_opts = crate::components::db::SearchOptions {
[INFO] [stdout] 858 +         let peer_opts = db::SearchOptions {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:862:32
[INFO] [stdout]     |
[INFO] [stdout] 862 |         let mut peer_results = crate::components::db::search_entries(
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 862 -         let mut peer_results = crate::components::db::search_entries(
[INFO] [stdout] 862 +         let mut peer_results = db::search_entries(
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/commands/stale_check.rs:791:9
[INFO] [stdout]     |
[INFO] [stdout] 791 | /         /// Invariant: STALE, REVIEW, UNREACHABLE buckets are pairwise disjoint.
[INFO] [stdout] 792 | |         /// All entry IDs appear in exactly zero or one bucket.
[INFO] [stdout]     | |_________------------------------------------------------------^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `blob_to_f32s` and `f32s_to_blob`
[INFO] [stdout]  --> src/components/db.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     blob_to_f32s, cosine_similarity, decode_emb_blob, decode_f16_blob_into, f32s_to_blob,
[INFO] [stdout]   |     ^^^^^^^^^^^^                                                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:1847:22
[INFO] [stdout]      |
[INFO] [stdout] 1847 |         ev_rows: Vec<crate::models::Evidence>,
[INFO] [stdout]      |                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1847 -         ev_rows: Vec<crate::models::Evidence>,
[INFO] [stdout] 1847 +         ev_rows: Vec<Evidence>,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:1891:29
[INFO] [stdout]      |
[INFO] [stdout] 1891 |     let mut flat_tasks: Vec<crate::models::Evidence> = Vec::new();
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1891 -     let mut flat_tasks: Vec<crate::models::Evidence> = Vec::new();
[INFO] [stdout] 1891 +     let mut flat_tasks: Vec<Evidence> = Vec::new();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:1920:54
[INFO] [stdout]      |
[INFO] [stdout] 1920 |                 crossbeam_channel::bounded::<(usize, crate::models::Evidence)>(work_chan_cap);
[INFO] [stdout]      |                                                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1920 -                 crossbeam_channel::bounded::<(usize, crate::models::Evidence)>(work_chan_cap);
[INFO] [stdout] 1920 +                 crossbeam_channel::bounded::<(usize, Evidence)>(work_chan_cap);
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2066:20
[INFO] [stdout]      |
[INFO] [stdout] 2066 |         let conn = rusqlite::Connection::open_in_memory().unwrap();
[INFO] [stdout]      |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2066 -         let conn = rusqlite::Connection::open_in_memory().unwrap();
[INFO] [stdout] 2066 +         let conn = Connection::open_in_memory().unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2524:9
[INFO] [stdout]      |
[INFO] [stdout] 2524 |         std::fs::create_dir_all(root.join("src")).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2524 -         std::fs::create_dir_all(root.join("src")).unwrap();
[INFO] [stdout] 2524 +         fs::create_dir_all(root.join("src")).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2525:9
[INFO] [stdout]      |
[INFO] [stdout] 2525 |         std::fs::write(root.join(rel), cited_content).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2525 -         std::fs::write(root.join(rel), cited_content).unwrap();
[INFO] [stdout] 2525 +         fs::write(root.join(rel), cited_content).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2610:48
[INFO] [stdout]      |
[INFO] [stdout] 2610 |     fn snapshot_db_state(conn: &Connection) -> anyhow::Result<DbSnapshot> {
[INFO] [stdout]      |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2610 -     fn snapshot_db_state(conn: &Connection) -> anyhow::Result<DbSnapshot> {
[INFO] [stdout] 2610 +     fn snapshot_db_state(conn: &Connection) -> Result<DbSnapshot> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2735:9
[INFO] [stdout]      |
[INFO] [stdout] 2735 |         std::fs::create_dir_all(root.join("src")).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2735 -         std::fs::create_dir_all(root.join("src")).unwrap();
[INFO] [stdout] 2735 +         fs::create_dir_all(root.join("src")).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2736:9
[INFO] [stdout]      |
[INFO] [stdout] 2736 |         std::fs::write(root.join("src/big.rs"), cited_content).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2736 -         std::fs::write(root.join("src/big.rs"), cited_content).unwrap();
[INFO] [stdout] 2736 +         fs::write(root.join("src/big.rs"), cited_content).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `blob_to_f32s`
[INFO] [stdout]     --> src/components/db.rs:2890:29
[INFO] [stdout]      |
[INFO] [stdout] 2890 |         use crate::models::{blob_to_f32s, f32s_to_blob};
[INFO] [stdout]      |                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2953:14
[INFO] [stdout]      |
[INFO] [stdout] 2953 |         impl crate::components::embedder::Embedder for FixedEmbedder {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2953 -         impl crate::components::embedder::Embedder for FixedEmbedder {
[INFO] [stdout] 2953 +         impl Embedder for FixedEmbedder {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2954:41
[INFO] [stdout]      |
[INFO] [stdout] 2954 |             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> { Ok(self.0.clone()) }
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2954 -             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> { Ok(self.0.clone()) }
[INFO] [stdout] 2954 +             fn embed(&self, _: &str) -> Result<Vec<f32>> { Ok(self.0.clone()) }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::f32s_to_blob`
[INFO] [stdout]     --> src/components/db.rs:3007:13
[INFO] [stdout]      |
[INFO] [stdout] 3007 |         use crate::models::f32s_to_blob;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:3010:14
[INFO] [stdout]      |
[INFO] [stdout] 3010 |         impl crate::components::embedder::Embedder for FakeEmbedder {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 3010 -         impl crate::components::embedder::Embedder for FakeEmbedder {
[INFO] [stdout] 3010 +         impl Embedder for FakeEmbedder {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:3011:41
[INFO] [stdout]      |
[INFO] [stdout] 3011 |             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> {
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 3011 -             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> {
[INFO] [stdout] 3011 +             fn embed(&self, _: &str) -> Result<Vec<f32>> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::f32s_to_blob`
[INFO] [stdout]     --> src/components/db.rs:3068:13
[INFO] [stdout]      |
[INFO] [stdout] 3068 |         use crate::models::f32s_to_blob;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:3071:14
[INFO] [stdout]      |
[INFO] [stdout] 3071 |         impl crate::components::embedder::Embedder for FakeEmbedder {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 3071 -         impl crate::components::embedder::Embedder for FakeEmbedder {
[INFO] [stdout] 3071 +         impl Embedder for FakeEmbedder {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:3072:41
[INFO] [stdout]      |
[INFO] [stdout] 3072 |             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> {
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 3072 -             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> {
[INFO] [stdout] 3072 +             fn embed(&self, _: &str) -> Result<Vec<f32>> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:3136:14
[INFO] [stdout]      |
[INFO] [stdout] 3136 |         impl crate::components::embedder::Embedder for FakeEmbedder {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 3136 -         impl crate::components::embedder::Embedder for FakeEmbedder {
[INFO] [stdout] 3136 +         impl Embedder for FakeEmbedder {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:3137:41
[INFO] [stdout]      |
[INFO] [stdout] 3137 |             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> {
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 3137 -             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> {
[INFO] [stdout] 3137 +             fn embed(&self, _: &str) -> Result<Vec<f32>> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:3240:24
[INFO] [stdout]      |
[INFO] [stdout] 3240 |         let baseline = std::fs::read_dir("/proc/self/task").map(|d| d.count()).unwrap_or(1);
[INFO] [stdout]      |                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 3240 -         let baseline = std::fs::read_dir("/proc/self/task").map(|d| d.count()).unwrap_or(1);
[INFO] [stdout] 3240 +         let baseline = fs::read_dir("/proc/self/task").map(|d| d.count()).unwrap_or(1);
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:3251:32
[INFO] [stdout]      |
[INFO] [stdout] 3251 |                 if let Ok(d) = std::fs::read_dir("/proc/self/task") {
[INFO] [stdout]      |                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 3251 -                 if let Ok(d) = std::fs::read_dir("/proc/self/task") {
[INFO] [stdout] 3251 +                 if let Ok(d) = fs::read_dir("/proc/self/task") {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/components/transcript_state.rs:213:9
[INFO] [stdout]     |
[INFO] [stdout] 213 |         std::fs::write(&tmp_path, serde_json::to_vec(&fake_map).unwrap()).unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 213 -         std::fs::write(&tmp_path, serde_json::to_vec(&fake_map).unwrap()).unwrap();
[INFO] [stdout] 213 +         fs::write(&tmp_path, serde_json::to_vec(&fake_map).unwrap()).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/components/verification.rs:318:21
[INFO] [stdout]     |
[INFO] [stdout] 318 |         let outer = tempfile::NamedTempFile::new().unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 318 -         let outer = tempfile::NamedTempFile::new().unwrap();
[INFO] [stdout] 318 +         let outer = NamedTempFile::new().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trivial cast: `&std::string::String` as `&dyn ToSql`
[INFO] [stdout]     --> src/components/db.rs:1028:26
[INFO] [stdout]      |
[INFO] [stdout] 1028 |                 .map(|s| s as &dyn ToSql)
[INFO] [stdout]      |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: cast can be replaced by coercion; this might require a temporary variable
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]     --> src/lib.rs:7:27
[INFO] [stdout]      |
[INFO] [stdout]    7 | #![warn(rust_2018_idioms, trivial_casts, unused_lifetimes, unused_qualifications)]
[INFO] [stdout]      |                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trivial cast: `&std::string::String` as `&dyn ToSql`
[INFO] [stdout]     --> src/components/db.rs:1028:26
[INFO] [stdout]      |
[INFO] [stdout] 1028 |                 .map(|s| s as &dyn ToSql)
[INFO] [stdout]      |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: cast can be replaced by coercion; this might require a temporary variable
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]     --> src/lib.rs:7:27
[INFO] [stdout]      |
[INFO] [stdout]    7 | #![warn(rust_2018_idioms, trivial_casts, unused_lifetimes, unused_qualifications)]
[INFO] [stdout]      |                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 12s
[INFO] running `Command { std: "docker" "inspect" "7cb2c3a2d18098998831d7091f5743368fc88831c0f78a9bc5ac6ea8aeba9128", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7cb2c3a2d18098998831d7091f5743368fc88831c0f78a9bc5ac6ea8aeba9128", kill_on_drop: false }`
[INFO] [stdout] 7cb2c3a2d18098998831d7091f5743368fc88831c0f78a9bc5ac6ea8aeba9128
