[INFO] cloning repository https://github.com/nimbodex/kairo
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nimbodex/kairo" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnimbodex%2Fkairo", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnimbodex%2Fkairo'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 361d5332b56bd0e55e6125ab01a3b71ec7ee86c6
[INFO] testing nimbodex/kairo against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnimbodex%2Fkairo" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/nimbodex/kairo
[INFO] finished tweaking git repo https://github.com/nimbodex/kairo
[INFO] tweaked toml for git repo https://github.com/nimbodex/kairo written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nimbodex/kairo on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/nimbodex/kairo 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d4e68443ca3aaa2105f1b0b1bfc2c4567334c31da1660ce315d1e92509dbf27c
[INFO] running `Command { std: "docker" "start" "-a" "d4e68443ca3aaa2105f1b0b1bfc2c4567334c31da1660ce315d1e92509dbf27c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d4e68443ca3aaa2105f1b0b1bfc2c4567334c31da1660ce315d1e92509dbf27c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d4e68443ca3aaa2105f1b0b1bfc2c4567334c31da1660ce315d1e92509dbf27c", kill_on_drop: false }`
[INFO] [stdout] d4e68443ca3aaa2105f1b0b1bfc2c4567334c31da1660ce315d1e92509dbf27c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1a5a06cfbfd3f9b67fb979fec6e8070c07e90ee683cefb5927599cdc0e3fc631
[INFO] running `Command { std: "docker" "start" "-a" "1a5a06cfbfd3f9b67fb979fec6e8070c07e90ee683cefb5927599cdc0e3fc631", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling aws-lc-rs v1.16.2
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling aws-lc-sys v0.39.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[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 tokio-macros v2.6.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling rustls-webpki v0.103.10
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling kairo v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> src/mcp_composition.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::path::{Path, PathBuf};
[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: `search_top_k`
[INFO] [stdout]   --> src/rag_citations.rs:12:64
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::rag_query::{LlmClient, ScoredChunk, format_context, search_top_k};
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `answer` and `prompt_tokens` are never read
[INFO] [stdout]    --> src/main.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 149 | struct ModelResult {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 152 |     answer: String,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 153 |     elapsed_ms: u128,
[INFO] [stdout] 154 |     prompt_tokens: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Message` is never constructed
[INFO] [stdout]   --> src/context_strategies.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Message {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `user`, `assistant`, and `system` are never used
[INFO] [stdout]   --> src/context_strategies.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Message {
[INFO] [stdout]    | ------------ associated functions in this implementation
[INFO] [stdout] 20 |     pub fn user(content: &str) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn assistant(content: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn system(content: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ContextStats` is never constructed
[INFO] [stdout]   --> src/context_strategies.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct ContextStats {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ContextStrategy` is never used
[INFO] [stdout]   --> src/context_strategies.rs:51:11
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub trait ContextStrategy {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SlidingWindow` is never constructed
[INFO] [stdout]   --> src/context_strategies.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct SlidingWindow {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/context_strategies.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl SlidingWindow {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 77 |     pub fn new(window_size: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StickyFacts` is never constructed
[INFO] [stdout]    --> src/context_strategies.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub struct StickyFacts {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_fact`, `remove_fact`, `facts`, and `facts_message` are never used
[INFO] [stdout]    --> src/context_strategies.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl StickyFacts {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 124 |     pub fn new(window_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn set_fact(&mut self, key: &str, value: &str) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn remove_fact(&mut self, key: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn facts(&self) -> &HashMap<String, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn facts_message(&self) -> Option<Message> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Branch` is never constructed
[INFO] [stdout]    --> src/context_strategies.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | struct Branch {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Branching` is never constructed
[INFO] [stdout]    --> src/context_strategies.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub struct Branching {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `create_branch`, `switch_branch`, `active_branch`, `branch_names`, and `branch_len` are never used
[INFO] [stdout]    --> src/context_strategies.rs:217:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | impl Branching {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 217 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn create_branch(&mut self, name: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn switch_branch(&mut self, name: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn active_branch(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn branch_names(&self) -> Vec<&String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub fn branch_len(&self, name: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compare_strategies` is never used
[INFO] [stdout]    --> src/context_strategies.rs:315:8
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub fn compare_strategies(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Message` is never constructed
[INFO] [stdout]   --> src/history_compression.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Message {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `user`, `assistant`, and `system` are never used
[INFO] [stdout]   --> src/history_compression.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Message {
[INFO] [stdout]    | ------------ associated functions in this implementation
[INFO] [stdout] 17 |     pub fn user(content: &str) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn assistant(content: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn system(content: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Summary` is never constructed
[INFO] [stdout]   --> src/history_compression.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Summary {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompressionStats` is never constructed
[INFO] [stdout]   --> src/history_compression.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct CompressionStats {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SummarizerFn` is never used
[INFO] [stdout]   --> src/history_compression.rs:78:10
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub type SummarizerFn = Box<dyn Fn(&[Message]) -> String>;
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_summarizer` is never used
[INFO] [stdout]   --> src/history_compression.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn default_summarizer(messages: &[Message]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryCompressor` is never constructed
[INFO] [stdout]   --> src/history_compression.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct HistoryCompressor {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/history_compression.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl HistoryCompressor {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn new(recent_window: usize, summary_chunk_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn add_message(&mut self, message: Message) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn compress(&mut self, summarizer: &dyn Fn(&[Message]) -> String) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn build_compressed_context(&self) -> Vec<Message> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn build_full_context(&self) -> Vec<Message> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn estimate_tokens(messages: &[Message]) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn stats(&self) -> CompressionStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn message_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     pub fn summary_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn summaries(&self) -> &[Summary] {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InvariantCategory` is never used
[INFO] [stdout]   --> src/invariants.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum InvariantCategory {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Invariant` is never constructed
[INFO] [stdout]   --> src/invariants.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Invariant {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/invariants.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl Invariant {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 40 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Violation` is never constructed
[INFO] [stdout]   --> src/invariants.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct Violation {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ValidationResult` is never used
[INFO] [stdout]   --> src/invariants.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub enum ValidationResult {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_ok` and `violations` are never used
[INFO] [stdout]   --> src/invariants.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | impl ValidationResult {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] 84 |     pub fn is_ok(&self) -> bool {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn violations(&self) -> &[Violation] {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InvariantStore` is never constructed
[INFO] [stdout]   --> src/invariants.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub struct InvariantStore {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/invariants.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl InvariantStore {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 103 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn add(&mut self, invariant: Invariant) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn remove(&mut self, id: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn all(&self) -> &[Invariant] {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn by_category(&self, category: &InvariantCategory) -> Vec<&Invariant> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn validate(&self, proposal: &str) -> ValidationResult {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn context_prompt(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn explain_refusal(violations: &[Violation]) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Document` is never constructed
[INFO] [stdout]   --> src/mcp_composition.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Document {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `naive_search` is never used
[INFO] [stdout]   --> src/mcp_composition.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn naive_search(corpus: &[Document], query: &str) -> Vec<Document> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extractive_summary` is never used
[INFO] [stdout]   --> src/mcp_composition.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn extractive_summary(docs: &[Document]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PipelineStep` is never constructed
[INFO] [stdout]   --> src/mcp_composition.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct PipelineStep {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_pipeline_server` is never used
[INFO] [stdout]   --> src/mcp_composition.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn build_pipeline_server(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pipeline` is never constructed
[INFO] [stdout]    --> src/mcp_composition.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct Pipeline {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `run_step`, `run`, and `trace_snapshot` are never used
[INFO] [stdout]    --> src/mcp_composition.rs:143:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl Pipeline {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 143 |     pub fn new(server: Arc<dyn McpServer>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn run_step(&self, tool: &str, input: Value) -> Result<Value, McpError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn run(&self, query: &str, filename: &str) -> Result<Value, McpError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn trace_snapshot(&self) -> Vec<PipelineStep> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample_corpus` is never used
[INFO] [stdout]    --> src/mcp_composition.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn sample_corpus() -> Vec<Document> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolInputSchema` is never constructed
[INFO] [stdout]   --> src/mcp_connection.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct ToolInputSchema {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolProperty` is never constructed
[INFO] [stdout]   --> src/mcp_connection.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct ToolProperty {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpToolDescriptor` is never constructed
[INFO] [stdout]   --> src/mcp_connection.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct McpToolDescriptor {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_param` are never used
[INFO] [stdout]   --> src/mcp_connection.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl McpToolDescriptor {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 41 |     pub fn new(name: &str, description: &str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn with_param(mut self, name: &str, kind: &str, description: &str, required: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `McpError` is never used
[INFO] [stdout]   --> src/mcp_connection.rs:70:10
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub enum McpError {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolCallResult` is never constructed
[INFO] [stdout]   --> src/mcp_connection.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct ToolCallResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `McpServer` is never used
[INFO] [stdout]   --> src/mcp_connection.rs:98:11
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub trait McpServer: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ToolHandler` is never used
[INFO] [stdout]    --> src/mcp_connection.rs:109:6
[INFO] [stdout]     |
[INFO] [stdout] 109 | type ToolHandler =
[INFO] [stdout]     |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InProcessMcpServer` is never constructed
[INFO] [stdout]    --> src/mcp_connection.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct InProcessMcpServer {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `register` are never used
[INFO] [stdout]    --> src/mcp_connection.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl InProcessMcpServer {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 118 |     pub fn new(name: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn register<F>(&self, descriptor: McpToolDescriptor, handler: F)
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpClient` is never constructed
[INFO] [stdout]    --> src/mcp_connection.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub struct McpClient {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `connect`, `is_connected`, `server_name`, `list_tools`, and `call_tool` are never used
[INFO] [stdout]    --> src/mcp_connection.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl McpClient {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 168 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn connect(&mut self, server: Arc<dyn McpServer>) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn is_connected(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn server_name(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn list_tools(&self) -> Result<Vec<McpToolDescriptor>, McpError> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn call_tool(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_demo_server` is never used
[INFO] [stdout]    --> src/mcp_connection.rs:208:8
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub fn build_demo_server() -> Arc<InProcessMcpServer> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_tool_list` is never used
[INFO] [stdout]    --> src/mcp_connection.rs:250:8
[INFO] [stdout]     |
[INFO] [stdout] 250 | pub fn format_tool_list(tools: &[McpToolDescriptor]) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ServerEntry` is never constructed
[INFO] [stdout]   --> src/mcp_orchestration.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ServerEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpRegistry` is never constructed
[INFO] [stdout]   --> src/mcp_orchestration.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct McpRegistry {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `register`, `servers`, `all_tools`, `route`, and `call` are never used
[INFO] [stdout]    --> src/mcp_orchestration.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl McpRegistry {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  35 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  41 |     pub fn register(&mut self, server: Arc<dyn McpServer>) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn servers(&self) -> Vec<&str> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn all_tools(&self) -> Vec<(String, McpToolDescriptor)> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn route<'a>(
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn call(&self, target: &str, args: &Value) -> Result<ToolCallResult, McpError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OrchestrationStep` is never constructed
[INFO] [stdout]    --> src/mcp_orchestration.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct OrchestrationStep {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Orchestrator` is never constructed
[INFO] [stdout]    --> src/mcp_orchestration.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct Orchestrator {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `invoke`, `trace`, `registry`, and `research_and_schedule` are never used
[INFO] [stdout]    --> src/mcp_orchestration.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl Orchestrator {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 129 |     pub fn new(registry: McpRegistry) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn invoke(&mut self, target: &str, args: Value) -> Result<Value, McpError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn trace(&self) -> &[OrchestrationStep] {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn registry(&self) -> &McpRegistry {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn research_and_schedule(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_demo_registry` is never used
[INFO] [stdout]    --> src/mcp_orchestration.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub fn build_demo_registry(save_dir: PathBuf) -> McpRegistry {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `catalog_map` is never used
[INFO] [stdout]    --> src/mcp_orchestration.rs:214:8
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub fn catalog_map(registry: &McpRegistry) -> HashMap<String, Vec<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TaskKind` is never used
[INFO] [stdout]   --> src/mcp_scheduler.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum TaskKind {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScheduledTask` is never constructed
[INFO] [stdout]   --> src/mcp_scheduler.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct ScheduledTask {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FireLogEntry` is never constructed
[INFO] [stdout]   --> src/mcp_scheduler.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct FireLogEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SchedulerState` is never constructed
[INFO] [stdout]   --> src/mcp_scheduler.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct SchedulerState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scheduler` is never constructed
[INFO] [stdout]   --> src/mcp_scheduler.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct Scheduler {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/mcp_scheduler.rs:67:12
[INFO] [stdout]     |
[INFO] [stdout]  66 | impl Scheduler {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  67 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn with_persistence(path: &Path) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     fn save(&self, state: &SchedulerState) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn schedule_once(&self, at: u64, message: &str) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn schedule_periodic(&self, first_at: u64, interval: u64, message: &str) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn cancel(&self, id: u64) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn tick(&self, now: u64) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn summary(&self) -> SchedulerSummary {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn tasks(&self) -> Vec<ScheduledTask> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn log(&self) -> Vec<FireLogEntry> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SchedulerSummary` is never constructed
[INFO] [stdout]    --> src/mcp_scheduler.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub struct SchedulerSummary {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_scheduler_server` is never used
[INFO] [stdout]    --> src/mcp_scheduler.rs:244:8
[INFO] [stdout]     |
[INFO] [stdout] 244 | pub fn build_scheduler_server(scheduler: Arc<Scheduler>) -> Arc<InProcessMcpServer> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Issue` is never constructed
[INFO] [stdout]   --> src/mcp_tool.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct Issue {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TrackerApi` is never constructed
[INFO] [stdout]   --> src/mcp_tool.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct TrackerApi {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `create`, `get`, and `list` are never used
[INFO] [stdout]   --> src/mcp_tool.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl TrackerApi {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 35 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn create(&self, title: &str, description: &str) -> Issue {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn get(&self, id: u64) -> Option<Issue> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn list(&self) -> Vec<Issue> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_tracker_server` is never used
[INFO] [stdout]   --> src/mcp_tool.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn build_tracker_server(api: Arc<TrackerApi>) -> Arc<InProcessMcpServer> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolUsingAgent` is never constructed
[INFO] [stdout]    --> src/mcp_tool.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub struct ToolUsingAgent {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `attach`, `create_issue`, `get_issue`, `list_issues`, and `demo_scenario` are never used
[INFO] [stdout]    --> src/mcp_tool.rs:143:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl ToolUsingAgent {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 143 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn attach(&mut self, server: Arc<dyn crate::mcp_connection::McpServer>) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn create_issue(&self, title: &str, description: &str) -> Result<Issue, McpError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn get_issue(&self, id: u64) -> Result<Option<Issue>, McpError> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn list_issues(&self) -> Result<Vec<Issue>, McpError> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn demo_scenario(&self) -> Result<String, McpError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryEntry` is never constructed
[INFO] [stdout]   --> src/memory_model.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct MemoryEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/memory_model.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl MemoryEntry {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 21 |     pub fn new(key: &str, value: &str, timestamp: u64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DialogMessage` is never constructed
[INFO] [stdout]   --> src/memory_model.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct DialogMessage {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `user`, `assistant`, and `system` are never used
[INFO] [stdout]   --> src/memory_model.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl DialogMessage {
[INFO] [stdout]    | ------------------ associated functions in this implementation
[INFO] [stdout] 38 |     pub fn user(content: &str) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn assistant(content: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn system(content: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ShortTermMemory` is never constructed
[INFO] [stdout]   --> src/memory_model.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct ShortTermMemory {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/memory_model.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl ShortTermMemory {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 67 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn add(&mut self, message: DialogMessage) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn messages(&self) -> &[DialogMessage] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn last_n(&self, n: usize) -> &[DialogMessage] {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkingMemory` is never constructed
[INFO] [stdout]    --> src/memory_model.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct WorkingMemory {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/memory_model.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl WorkingMemory {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 106 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn set(&mut self, key: &str, value: &str, timestamp: u64) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn get(&self, key: &str) -> Option<&MemoryEntry> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn remove(&mut self, key: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn all(&self) -> Vec<&MemoryEntry> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn keys(&self) -> Vec<&String> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LongTermMemory` is never constructed
[INFO] [stdout]    --> src/memory_model.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct LongTermMemory {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/memory_model.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl LongTermMemory {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 153 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn store(&mut self, key: &str, value: &str, timestamp: u64) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn recall(&self, key: &str) -> Option<&MemoryEntry> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn remove(&mut self, key: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn search(&self, query: &str) -> Vec<&MemoryEntry> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn all(&self) -> Vec<&MemoryEntry> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AssistantMemory` is never constructed
[INFO] [stdout]    --> src/memory_model.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub struct AssistantMemory {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `promote_to_long_term`, and `context_prompt` are never used
[INFO] [stdout]    --> src/memory_model.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl AssistantMemory {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 205 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn promote_to_long_term(&mut self, key: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn context_prompt(&self, recent_messages: usize) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user_id` is never read
[INFO] [stdout]  --> src/models.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ApiErrorResponse {
[INFO] [stdout]   |            ---------------- field in this struct
[INFO] [stdout] 5 |     pub error: ApiError,
[INFO] [stdout] 6 |     pub user_id: Option<String>,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ApiErrorResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `provider_name` is never read
[INFO] [stdout]   --> src/models.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct ApiErrorMetadata {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 18 |     pub raw: Option<String>,
[INFO] [stdout] 19 |     pub provider_name: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiErrorMetadata` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `object`, `created`, `model`, `provider`, and `system_fingerprint` are never read
[INFO] [stdout]   --> src/models.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ChatCompletion {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 24 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 25 |     pub object: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 26 |     pub created: u64,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 27 |     pub model: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 28 |     pub provider: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 29 |     pub system_fingerprint: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChatCompletion` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `index`, `finish_reason`, and `native_finish_reason` are never read
[INFO] [stdout]   --> src/models.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct Choice {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 36 |     pub index: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 37 |     pub finish_reason: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     pub native_finish_reason: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Choice` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `role`, `refusal`, `reasoning`, and `reasoning_details` are never read
[INFO] [stdout]   --> src/models.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Message {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 44 |     pub role: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 45 |     pub content: String,
[INFO] [stdout] 46 |     pub refusal: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 47 |     pub reasoning: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 48 |     #[serde(default)]
[INFO] [stdout] 49 |     pub reasoning_details: Vec<ReasoningDetail>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kind`, `text`, `format`, and `index` are never read
[INFO] [stdout]   --> src/models.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct ReasoningDetail {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 54 |     #[serde(rename = "type")]
[INFO] [stdout] 55 |     pub kind: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 56 |     pub text: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 57 |     pub format: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 58 |     pub index: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReasoningDetail` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_byok`, `prompt_tokens_details`, `cost_details`, and `completion_tokens_details` are never read
[INFO] [stdout]   --> src/models.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Usage {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub is_byok: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 68 |     pub prompt_tokens_details: PromptTokensDetails,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 69 |     pub cost_details: CostDetails,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 70 |     pub completion_tokens_details: CompletionTokensDetails,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Usage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cached_tokens`, `cache_write_tokens`, `audio_tokens`, and `video_tokens` are never read
[INFO] [stdout]   --> src/models.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct PromptTokensDetails {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] 75 |     pub cached_tokens: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 76 |     pub cache_write_tokens: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 77 |     pub audio_tokens: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 78 |     pub video_tokens: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PromptTokensDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `upstream_inference_cost`, `upstream_inference_prompt_cost`, and `upstream_inference_completions_cost` are never read
[INFO] [stdout]   --> src/models.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct CostDetails {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 83 |     pub upstream_inference_cost: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 |     pub upstream_inference_prompt_cost: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 85 |     pub upstream_inference_completions_cost: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CostDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `reasoning_tokens`, `image_tokens`, and `audio_tokens` are never read
[INFO] [stdout]   --> src/models.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct CompletionTokensDetails {
[INFO] [stdout]    |            ----------------------- fields in this struct
[INFO] [stdout] 90 |     pub reasoning_tokens: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 91 |     pub image_tokens: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 92 |     pub audio_tokens: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CompletionTokensDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ResponseStyle` is never used
[INFO] [stdout]   --> src/personalization.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum ResponseStyle {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ResponseFormat` is never used
[INFO] [stdout]   --> src/personalization.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum ResponseFormat {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExperienceLevel` is never used
[INFO] [stdout]   --> src/personalization.rs:52:10
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub enum ExperienceLevel {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UserProfile` is never constructed
[INFO] [stdout]   --> src/personalization.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct UserProfile {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/personalization.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  83 | impl UserProfile {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  84 |     /// Creates a new profile with the given name and sensible defaults.
[INFO] [stdout]  85 |     pub fn new(name: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn with_role(mut self, role: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn with_experience(mut self, level: ExperienceLevel) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn with_style(mut self, style: ResponseStyle) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn with_format(mut self, format: ResponseFormat) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn with_language(mut self, lang: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn with_constraint(mut self, constraint: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn with_custom(mut self, key: &str, value: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn to_system_prompt(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProfileManager` is never constructed
[INFO] [stdout]    --> src/personalization.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub struct ProfileManager {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/personalization.rs:174:12
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl ProfileManager {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 174 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn add_profile(&mut self, profile: UserProfile) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn set_active(&mut self, name: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn active_profile(&self) -> Option<&UserProfile> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn active_system_prompt(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn profile_names(&self) -> Vec<&String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn remove_profile(&mut self, name: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn get_profile(&self, name: &str) -> Option<&UserProfile> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ChatRole` is never used
[INFO] [stdout]   --> src/rag_chat.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum ChatRole {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChatMessage` is never constructed
[INFO] [stdout]   --> src/rag_chat.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct ChatMessage {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `user` and `assistant` are never used
[INFO] [stdout]   --> src/rag_chat.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl ChatMessage {
[INFO] [stdout]    | ---------------- associated functions in this implementation
[INFO] [stdout] 37 |     pub fn user(text: &str) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn assistant(text: &str, sources: Vec<SourceRef>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskState` is never constructed
[INFO] [stdout]   --> src/rag_chat.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct TaskState {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_goal`, `add_constraint`, `add_clarification`, `add_term`, `render`, and `is_empty` are never used
[INFO] [stdout]    --> src/rag_chat.rs:64:12
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl TaskState {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout]  64 |     pub fn set_goal(&mut self, goal: &str) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn add_constraint(&mut self, c: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn add_clarification(&mut self, c: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn add_term(&mut self, t: &str) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn render(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_state_updates` is never used
[INFO] [stdout]    --> src/rag_chat.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn extract_state_updates(state: &mut TaskState, user_message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RagChat` is never constructed
[INFO] [stdout]    --> src/rag_chat.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct RagChat<E: Embedder, L: LlmClient> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/rag_chat.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 162 | impl<E: Embedder, L: LlmClient> RagChat<E, L> {
[INFO] [stdout]     | --------------------------------------------- associated items in this implementation
[INFO] [stdout] 163 |     pub fn new(index: RagIndex, embedder: E, llm: L) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn with_config(mut self, cfg: CitationConfig) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn with_max_history(mut self, n: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn history(&self) -> &[ChatMessage] {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     fn enriched_query(&self, user_message: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn send(&mut self, user_message: &str) -> Result<CitedAnswer, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn all_answers_cited(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn goal_preserved(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn unique_sources(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_scenario` is never used
[INFO] [stdout]    --> src/rag_chat.rs:260:8
[INFO] [stdout]     |
[INFO] [stdout] 260 | pub fn run_scenario<E: Embedder, L: LlmClient>(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCENARIO_RAG_LEARNING` is never used
[INFO] [stdout]    --> src/rag_chat.rs:274:11
[INFO] [stdout]     |
[INFO] [stdout] 274 | pub const SCENARIO_RAG_LEARNING: &[&str] = &[
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCENARIO_MCP_VS_RAG` is never used
[INFO] [stdout]    --> src/rag_chat.rs:291:11
[INFO] [stdout]     |
[INFO] [stdout] 291 | pub const SCENARIO_MCP_VS_RAG: &[&str] = &[
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceRef` is never constructed
[INFO] [stdout]   --> src/rag_citations.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SourceRef {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Quote` is never constructed
[INFO] [stdout]   --> src/rag_citations.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Quote {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CitedAnswer` is never constructed
[INFO] [stdout]   --> src/rag_citations.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct CitedAnswer {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `idk` is never used
[INFO] [stdout]   --> src/rag_citations.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl CitedAnswer {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 52 |     pub fn idk(reason: &str, top_score: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CitationConfig` is never constructed
[INFO] [stdout]   --> src/rag_citations.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct CitationConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYSTEM_CITED` is never used
[INFO] [stdout]   --> src/rag_citations.rs:90:11
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub const SYSTEM_CITED: &str =
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_quote` is never used
[INFO] [stdout]   --> src/rag_citations.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn make_quote(chunk: &ScoredChunk, max_chars: usize) -> Quote {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `answer_with_citations` is never used
[INFO] [stdout]    --> src/rag_citations.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn answer_with_citations<E: Embedder, L: LlmClient>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CitationValidation` is never constructed
[INFO] [stdout]    --> src/rag_citations.rs:174:12
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub struct CitationValidation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate` is never used
[INFO] [stdout]    --> src/rag_citations.rs:181:8
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub fn validate(answer: &CitedAnswer) -> CitationValidation {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QuoteComposerLlm` is never constructed
[INFO] [stdout]    --> src/rag_citations.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub struct QuoteComposerLlm;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_validation_suite` is never used
[INFO] [stdout]    --> src/rag_citations.rs:232:8
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub fn run_validation_suite<E: Embedder, L: LlmClient>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EMBEDDING_DIM` is never used
[INFO] [stdout]   --> src/rag_indexing.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const EMBEDDING_DIM: usize = 128;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkMeta` is never constructed
[INFO] [stdout]   --> src/rag_indexing.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ChunkMeta {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Chunk` is never constructed
[INFO] [stdout]   --> src/rag_indexing.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Chunk {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ChunkStrategy` is never used
[INFO] [stdout]   --> src/rag_indexing.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub enum ChunkStrategy {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceDocument` is never constructed
[INFO] [stdout]   --> src/rag_indexing.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct SourceDocument {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_file` are never used
[INFO] [stdout]   --> src/rag_indexing.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl SourceDocument {
[INFO] [stdout]    | ------------------- associated functions in this implementation
[INFO] [stdout] 54 |     pub fn new(source: &str, title: &str, content: &str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn from_file(path: &Path) -> std::io::Result<Self> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Embedder` is never used
[INFO] [stdout]   --> src/rag_indexing.rs:79:11
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub trait Embedder: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HashEmbedder` is never constructed
[INFO] [stdout]   --> src/rag_indexing.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct HashEmbedder {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `with_dim`, and `hash` are never used
[INFO] [stdout]    --> src/rag_indexing.rs:94:12
[INFO] [stdout]     |
[INFO] [stdout]  93 | impl HashEmbedder {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout]  94 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn with_dim(dim: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn hash(s: &str) -> u64 {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tokenize` is never used
[INFO] [stdout]    --> src/rag_indexing.rs:138:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn tokenize(text: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize` is never used
[INFO] [stdout]    --> src/rag_indexing.rs:146:8
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub fn normalize(v: &mut [f32]) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cosine_similarity` is never used
[INFO] [stdout]    --> src/rag_indexing.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn cosine_similarity(a: &[f32], b: &[f32]) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chunk_fixed_size` is never used
[INFO] [stdout]    --> src/rag_indexing.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub fn chunk_fixed_size(doc: &SourceDocument, size: usize, overlap: usize) -> Vec<(ChunkMeta, String)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chunk_structure_aware` is never used
[INFO] [stdout]    --> src/rag_indexing.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn chunk_structure_aware(doc: &SourceDocument) -> Vec<(ChunkMeta, String)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chunk_document` is never used
[INFO] [stdout]    --> src/rag_indexing.rs:249:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub fn chunk_document(doc: &SourceDocument, strategy: ChunkStrategy) -> Vec<(ChunkMeta, String)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RagIndex` is never constructed
[INFO] [stdout]    --> src/rag_indexing.rs:258:12
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub struct RagIndex {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `len`, `is_empty`, `save_json`, and `load_json` are never used
[INFO] [stdout]    --> src/rag_indexing.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | impl RagIndex {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 264 |     pub fn new(dim: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub fn save_json(&self, path: &Path) -> std::io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub fn load_json(path: &Path) -> std::io::Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_index` is never used
[INFO] [stdout]    --> src/rag_indexing.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub fn build_index<E: Embedder>(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkingStats` is never constructed
[INFO] [stdout]    --> src/rag_indexing.rs:313:12
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub struct ChunkingStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chunking_stats` is never used
[INFO] [stdout]    --> src/rag_indexing.rs:321:8
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub fn chunking_stats(label: &'static str, chunks: &[(ChunkMeta, String)]) -> ChunkingStats {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample_corpus` is never used
[INFO] [stdout]    --> src/rag_indexing.rs:339:8
[INFO] [stdout]     |
[INFO] [stdout] 339 | pub fn sample_corpus() -> Vec<SourceDocument> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScoredChunk` is never constructed
[INFO] [stdout]   --> src/rag_query.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct ScoredChunk {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_top_k` is never used
[INFO] [stdout]   --> src/rag_query.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn search_top_k<E: Embedder>(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_context` is never used
[INFO] [stdout]   --> src/rag_query.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn format_context(chunks: &[ScoredChunk]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `LlmClient` is never used
[INFO] [stdout]   --> src/rag_query.rs:59:11
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub trait LlmClient {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StubLlm` is never constructed
[INFO] [stdout]   --> src/rag_query.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct StubLlm;
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RagAnswer` is never constructed
[INFO] [stdout]   --> src/rag_query.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub struct RagAnswer {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `QueryMode` is never used
[INFO] [stdout]   --> src/rag_query.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub enum QueryMode {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYSTEM_WITHOUT_RAG` is never used
[INFO] [stdout]   --> src/rag_query.rs:89:11
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub const SYSTEM_WITHOUT_RAG: &str =
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYSTEM_WITH_RAG` is never used
[INFO] [stdout]   --> src/rag_query.rs:92:11
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub const SYSTEM_WITH_RAG: &str =
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ask` is never used
[INFO] [stdout]   --> src/rag_query.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn ask<E: Embedder, L: LlmClient>(
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ControlQuestion` is never constructed
[INFO] [stdout]    --> src/rag_query.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub struct ControlQuestion {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `control_questions` is never used
[INFO] [stdout]    --> src/rag_query.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub fn control_questions() -> Vec<ControlQuestion> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AnswerMetrics` is never constructed
[INFO] [stdout]    --> src/rag_query.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub struct AnswerMetrics {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `keyword_recall` and `source_recall` are never used
[INFO] [stdout]    --> src/rag_query.rs:201:12
[INFO] [stdout]     |
[INFO] [stdout] 200 | impl AnswerMetrics {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 201 |     pub fn keyword_recall(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn source_recall(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate` is never used
[INFO] [stdout]    --> src/rag_query.rs:220:8
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub fn evaluate(answer: &RagAnswer, question: &ControlQuestion) -> AnswerMetrics {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compare_modes` is never used
[INFO] [stdout]    --> src/rag_query.rs:256:8
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub fn compare_modes<E: Embedder, L: LlmClient>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ComparisonRow` is never constructed
[INFO] [stdout]    --> src/rag_query.rs:284:12
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub struct ComparisonRow {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ContextEchoLlm` is never constructed
[INFO] [stdout]    --> src/rag_query.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub struct ContextEchoLlm;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_index` is never used
[INFO] [stdout]    --> src/rag_query.rs:303:8
[INFO] [stdout]     |
[INFO] [stdout] 303 | pub fn default_index() -> (RagIndex, HashEmbedder) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RerankConfig` is never constructed
[INFO] [stdout]   --> src/rag_reranking.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct RerankConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `filter_by_threshold` is never used
[INFO] [stdout]   --> src/rag_reranking.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn filter_by_threshold(chunks: Vec<ScoredChunk>, threshold: f32) -> Vec<ScoredChunk> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rerank_keyword` is never used
[INFO] [stdout]   --> src/rag_reranking.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn rerank_keyword(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rewrite_query` is never used
[INFO] [stdout]   --> src/rag_reranking.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn rewrite_query(query: &str) -> Vec<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `retrieve_filter_rerank` is never used
[INFO] [stdout]   --> src/rag_reranking.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn retrieve_filter_rerank<E: Embedder>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `retrieve_with_rewrite` is never used
[INFO] [stdout]    --> src/rag_reranking.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn retrieve_with_rewrite<E: Embedder>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RetrievalMode` is never used
[INFO] [stdout]    --> src/rag_reranking.rs:134:10
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub enum RetrievalMode {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `retrieve_mode` is never used
[INFO] [stdout]    --> src/rag_reranking.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub fn retrieve_mode<E: Embedder>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RetrievalMetrics` is never constructed
[INFO] [stdout]    --> src/rag_reranking.rs:173:12
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub struct RetrievalMetrics {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_retrieval` is never used
[INFO] [stdout]    --> src/rag_reranking.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub fn evaluate_retrieval(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `State` is never used
[INFO] [stdout]   --> src/state_transitions.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum State {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TransitionResult` is never used
[INFO] [stdout]   --> src/state_transitions.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub enum TransitionResult {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransitionRecord` is never constructed
[INFO] [stdout]   --> src/state_transitions.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct TransitionRecord {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ControlledStateMachine` is never constructed
[INFO] [stdout]   --> src/state_transitions.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct ControlledStateMachine {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/state_transitions.rs:76:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl ControlledStateMachine {
[INFO] [stdout]     | --------------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn with_transitions(transitions: HashMap<State, HashSet<State>>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn current(&self) -> State {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn allowed_from_current(&self) -> Vec<State> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn transition(&mut self, target: State) -> TransitionResult {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn pause(&mut self) -> TransitionResult {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn resume(&mut self) -> TransitionResult {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn history(&self) -> &[TransitionRecord] {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn is_terminal(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TaskPhase` is never used
[INFO] [stdout]   --> src/task_state_machine.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum TaskPhase {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExpectedAction` is never used
[INFO] [stdout]   --> src/task_state_machine.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum ExpectedAction {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskSnapshot` is never constructed
[INFO] [stdout]   --> src/task_state_machine.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct TaskSnapshot {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskStateMachine` is never constructed
[INFO] [stdout]   --> src/task_state_machine.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct TaskStateMachine {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/task_state_machine.rs:78:12
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl TaskStateMachine {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  77 |     /// Creates a new task in the Planning phase.
[INFO] [stdout]  78 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn phase(&self) -> TaskPhase {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn step(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn expected_action(&self) -> &ExpectedAction {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn is_paused(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn is_done(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn advance(&mut self) -> Result<TaskPhase, String> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn next_step(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn pause(&mut self) -> TaskSnapshot {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn resume(&mut self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn add_note(&mut self, note: &str) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn notes(&self) -> &[String] {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn transition_log(&self) -> &[(TaskPhase, TaskPhase)] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn snapshot(&self) -> TaskSnapshot {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn context_prompt(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CHARS_PER_TOKEN` is never used
[INFO] [stdout]  --> src/token_tracking.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const CHARS_PER_TOKEN: usize = 4;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_tokens` is never used
[INFO] [stdout]   --> src/token_tracking.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn estimate_tokens(text: &str) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExchangeUsage` is never constructed
[INFO] [stdout]   --> src/token_tracking.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ExchangeUsage {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TokenTracker` is never constructed
[INFO] [stdout]   --> src/token_tracking.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct TokenTracker {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OverflowStatus` is never used
[INFO] [stdout]   --> src/token_tracking.rs:50:10
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub enum OverflowStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/token_tracking.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl TokenTracker {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  76 |     /// Creates a new tracker with the given context window limit.
[INFO] [stdout]  77 |     pub fn new(context_limit: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn record_exchange(&mut self, prompt_tokens: usize, completion_tokens: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn record_from_text(&mut self, prompt_text: &str, completion_text: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn current_context_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn check_overflow(&self, next_prompt_tokens: usize) -> OverflowStatus {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn total_prompt_tokens(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn total_completion_tokens(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn exchange_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn exchanges(&self) -> &[ExchangeUsage] {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn context_limit(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn simulate_dialog(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn print_growth_report(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 52.17s
[INFO] running `Command { std: "docker" "inspect" "1a5a06cfbfd3f9b67fb979fec6e8070c07e90ee683cefb5927599cdc0e3fc631", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1a5a06cfbfd3f9b67fb979fec6e8070c07e90ee683cefb5927599cdc0e3fc631", kill_on_drop: false }`
[INFO] [stdout] 1a5a06cfbfd3f9b67fb979fec6e8070c07e90ee683cefb5927599cdc0e3fc631
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7df3cce234fa477321b85d399da2d1a9c4289db47d6d068bdaf88f396be819be
[INFO] running `Command { std: "docker" "start" "-a" "7df3cce234fa477321b85d399da2d1a9c4289db47d6d068bdaf88f396be819be", kill_on_drop: false }`
[INFO] [stderr]    Compiling kairo v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> src/mcp_composition.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::path::{Path, PathBuf};
[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: `search_top_k`
[INFO] [stdout]   --> src/rag_citations.rs:12:64
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::rag_query::{LlmClient, ScoredChunk, format_context, search_top_k};
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `answer` and `prompt_tokens` are never read
[INFO] [stdout]    --> src/main.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 149 | struct ModelResult {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 152 |     answer: String,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 153 |     elapsed_ms: u128,
[INFO] [stdout] 154 |     prompt_tokens: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `branch_names` is never used
[INFO] [stdout]    --> src/context_strategies.rs:261:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | impl Branching {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn branch_names(&self) -> Vec<&String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SummarizerFn` is never used
[INFO] [stdout]   --> src/history_compression.rs:78:10
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub type SummarizerFn = Box<dyn Fn(&[Message]) -> String>;
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `message_count` is never used
[INFO] [stdout]    --> src/history_compression.rs:222:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl HistoryCompressor {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn message_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `server_name` is never used
[INFO] [stdout]    --> src/mcp_connection.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl McpClient {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn server_name(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `args` and `output` are never read
[INFO] [stdout]    --> src/mcp_orchestration.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct OrchestrationStep {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 117 |     pub target: String,
[INFO] [stdout] 118 |     pub args: Value,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 119 |     pub output: Value,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OrchestrationStep` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `registry` is never used
[INFO] [stdout]    --> src/mcp_orchestration.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl Orchestrator {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn registry(&self) -> &McpRegistry {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `system` is never used
[INFO] [stdout]   --> src/memory_model.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl DialogMessage {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn system(content: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `messages` is never used
[INFO] [stdout]   --> src/memory_model.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl ShortTermMemory {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn messages(&self) -> &[DialogMessage] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `keys` and `clear` are never used
[INFO] [stdout]    --> src/memory_model.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl WorkingMemory {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn keys(&self) -> Vec<&String> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remove` is never used
[INFO] [stdout]    --> src/memory_model.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl LongTermMemory {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn remove(&mut self, key: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user_id` is never read
[INFO] [stdout]  --> src/models.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ApiErrorResponse {
[INFO] [stdout]   |            ---------------- field in this struct
[INFO] [stdout] 5 |     pub error: ApiError,
[INFO] [stdout] 6 |     pub user_id: Option<String>,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ApiErrorResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `provider_name` is never read
[INFO] [stdout]   --> src/models.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct ApiErrorMetadata {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 18 |     pub raw: Option<String>,
[INFO] [stdout] 19 |     pub provider_name: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiErrorMetadata` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `object`, `created`, `model`, `provider`, and `system_fingerprint` are never read
[INFO] [stdout]   --> src/models.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ChatCompletion {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 24 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 25 |     pub object: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 26 |     pub created: u64,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 27 |     pub model: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 28 |     pub provider: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 29 |     pub system_fingerprint: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChatCompletion` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `index`, `finish_reason`, and `native_finish_reason` are never read
[INFO] [stdout]   --> src/models.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct Choice {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 36 |     pub index: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 37 |     pub finish_reason: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     pub native_finish_reason: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Choice` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `role`, `refusal`, `reasoning`, and `reasoning_details` are never read
[INFO] [stdout]   --> src/models.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Message {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 44 |     pub role: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 45 |     pub content: String,
[INFO] [stdout] 46 |     pub refusal: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 47 |     pub reasoning: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 48 |     #[serde(default)]
[INFO] [stdout] 49 |     pub reasoning_details: Vec<ReasoningDetail>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kind`, `text`, `format`, and `index` are never read
[INFO] [stdout]   --> src/models.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct ReasoningDetail {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 54 |     #[serde(rename = "type")]
[INFO] [stdout] 55 |     pub kind: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 56 |     pub text: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 57 |     pub format: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 58 |     pub index: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReasoningDetail` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_byok`, `prompt_tokens_details`, `cost_details`, and `completion_tokens_details` are never read
[INFO] [stdout]   --> src/models.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Usage {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub is_byok: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 68 |     pub prompt_tokens_details: PromptTokensDetails,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 69 |     pub cost_details: CostDetails,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 70 |     pub completion_tokens_details: CompletionTokensDetails,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Usage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cached_tokens`, `cache_write_tokens`, `audio_tokens`, and `video_tokens` are never read
[INFO] [stdout]   --> src/models.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct PromptTokensDetails {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] 75 |     pub cached_tokens: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 76 |     pub cache_write_tokens: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 77 |     pub audio_tokens: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 78 |     pub video_tokens: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PromptTokensDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `upstream_inference_cost`, `upstream_inference_prompt_cost`, and `upstream_inference_completions_cost` are never read
[INFO] [stdout]   --> src/models.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct CostDetails {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 83 |     pub upstream_inference_cost: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 |     pub upstream_inference_prompt_cost: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 85 |     pub upstream_inference_completions_cost: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CostDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `reasoning_tokens`, `image_tokens`, and `audio_tokens` are never read
[INFO] [stdout]   --> src/models.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct CompletionTokensDetails {
[INFO] [stdout]    |            ----------------------- fields in this struct
[INFO] [stdout] 90 |     pub reasoning_tokens: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 91 |     pub image_tokens: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 92 |     pub audio_tokens: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CompletionTokensDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Detailed` and `Conversational` are never constructed
[INFO] [stdout]   --> src/personalization.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum ResponseStyle {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 13 |     Concise,
[INFO] [stdout] 14 |     Detailed,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 15 |     StepByStep,
[INFO] [stdout] 16 |     Conversational,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResponseStyle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PlainText` and `BulletPoints` are never constructed
[INFO] [stdout]   --> src/personalization.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum ResponseFormat {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 33 |     PlainText,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 34 |     Markdown,
[INFO] [stdout] 35 |     BulletPoints,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResponseFormat` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_profile` is never used
[INFO] [stdout]    --> src/personalization.rs:229:12
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl ProfileManager {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn get_profile(&self, name: &str) -> Option<&UserProfile> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_config` is never used
[INFO] [stdout]    --> src/rag_chat.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 162 | impl<E: Embedder, L: LlmClient> RagChat<E, L> {
[INFO] [stdout]     | --------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn with_config(mut self, cfg: CitationConfig) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_file` is never used
[INFO] [stdout]   --> src/rag_indexing.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl SourceDocument {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn from_file(path: &Path) -> std::io::Result<Self> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_dim` is never used
[INFO] [stdout]   --> src/rag_indexing.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 93 | impl HashEmbedder {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn with_dim(dim: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> src/rag_indexing.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | impl RagIndex {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `strategy`, `min_len`, and `max_len` are never read
[INFO] [stdout]    --> src/rag_indexing.rs:314:9
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub struct ChunkingStats {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 314 |     pub strategy: &'static str,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub min_len: usize,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 318 |     pub max_len: usize,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ChunkingStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source_hits` and `source_total` are never read
[INFO] [stdout]    --> src/rag_query.rs:196:9
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub struct AnswerMetrics {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub source_hits: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 197 |     pub source_total: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AnswerMetrics` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `source_recall` is never used
[INFO] [stdout]    --> src/rag_query.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout] 200 | impl AnswerMetrics {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn source_recall(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `question` is never read
[INFO] [stdout]    --> src/rag_query.rs:285:9
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub struct ComparisonRow {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 285 |     pub question: &'static str,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComparisonRow` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `precision` and `size` are never read
[INFO] [stdout]    --> src/rag_reranking.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub struct RetrievalMetrics {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 174 |     pub precision: f32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 175 |     pub hit_at_k: bool,
[INFO] [stdout] 176 |     pub size: usize,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RetrievalMetrics` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `from` and `to` are never read
[INFO] [stdout]   --> src/state_transitions.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct TransitionRecord {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] 48 |     pub from: State,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 49 |     pub to: State,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransitionRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_transitions` is never used
[INFO] [stdout]    --> src/state_transitions.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl ControlledStateMachine {
[INFO] [stdout]     | --------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn with_transitions(transitions: HashMap<State, HashSet<State>>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ApprovePlan` and `Finalize` are never constructed
[INFO] [stdout]   --> src/task_state_machine.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum ExpectedAction {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 32 |     DefinePlan,
[INFO] [stdout] 33 |     ApprovePlan,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     Finalize,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExpectedAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `expected_action` and `paused` are never read
[INFO] [stdout]   --> src/task_state_machine.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct TaskSnapshot {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub expected_action: ExpectedAction,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 59 |     pub paused: bool,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TaskSnapshot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `current_context_size`, `exchanges`, `context_limit`, and `print_growth_report` are never used
[INFO] [stdout]    --> src/token_tracking.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl TokenTracker {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn current_context_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn exchanges(&self) -> &[ExchangeUsage] {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn context_limit(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn print_growth_report(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.64s
[INFO] running `Command { std: "docker" "inspect" "7df3cce234fa477321b85d399da2d1a9c4289db47d6d068bdaf88f396be819be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7df3cce234fa477321b85d399da2d1a9c4289db47d6d068bdaf88f396be819be", kill_on_drop: false }`
[INFO] [stdout] 7df3cce234fa477321b85d399da2d1a9c4289db47d6d068bdaf88f396be819be
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] fdca8776ed845ca1fd4487a656a8db8df599028093112ebf3ca4032e139dd613
[INFO] running `Command { std: "docker" "start" "-a" "fdca8776ed845ca1fd4487a656a8db8df599028093112ebf3ca4032e139dd613", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Path`
[INFO] [stderr]   --> src/mcp_composition.rs:16:17
[INFO] [stderr]    |
[INFO] [stderr] 16 | use std::path::{Path, PathBuf};
[INFO] [stderr]    |                 ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `search_top_k`
[INFO] [stderr]   --> src/rag_citations.rs:12:64
[INFO] [stderr]    |
[INFO] [stderr] 12 | use crate::rag_query::{LlmClient, ScoredChunk, format_context, search_top_k};
[INFO] [stderr]    |                                                                ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `answer` and `prompt_tokens` are never read
[INFO] [stderr]    --> src/main.rs:152:5
[INFO] [stderr]     |
[INFO] [stderr] 149 | struct ModelResult {
[INFO] [stderr]     |        ----------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 152 |     answer: String,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr] 153 |     elapsed_ms: u128,
[INFO] [stderr] 154 |     prompt_tokens: u32,
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `branch_names` is never used
[INFO] [stderr]    --> src/context_strategies.rs:261:12
[INFO] [stderr]     |
[INFO] [stderr] 216 | impl Branching {
[INFO] [stderr]     | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 261 |     pub fn branch_names(&self) -> Vec<&String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `SummarizerFn` is never used
[INFO] [stderr]   --> src/history_compression.rs:78:10
[INFO] [stderr]    |
[INFO] [stderr] 78 | pub type SummarizerFn = Box<dyn Fn(&[Message]) -> String>;
[INFO] [stderr]    |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `message_count` is never used
[INFO] [stderr]    --> src/history_compression.rs:222:12
[INFO] [stderr]     |
[INFO] [stderr] 112 | impl HistoryCompressor {
[INFO] [stderr]     | ---------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 222 |     pub fn message_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `server_name` is never used
[INFO] [stderr]    --> src/mcp_connection.rs:181:12
[INFO] [stderr]     |
[INFO] [stderr] 167 | impl McpClient {
[INFO] [stderr]     | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 181 |     pub fn server_name(&self) -> Option<&str> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `args` and `output` are never read
[INFO] [stderr]    --> src/mcp_orchestration.rs:118:9
[INFO] [stderr]     |
[INFO] [stderr] 116 | pub struct OrchestrationStep {
[INFO] [stderr]     |            ----------------- fields in this struct
[INFO] [stderr] 117 |     pub target: String,
[INFO] [stderr] 118 |     pub args: Value,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr] 119 |     pub output: Value,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `OrchestrationStep` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `registry` is never used
[INFO] [stderr]    --> src/mcp_orchestration.rs:154:12
[INFO] [stderr]     |
[INFO] [stderr] 128 | impl Orchestrator {
[INFO] [stderr]     | ----------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 154 |     pub fn registry(&self) -> &McpRegistry {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `system` is never used
[INFO] [stderr]   --> src/memory_model.rs:52:12
[INFO] [stderr]    |
[INFO] [stderr] 37 | impl DialogMessage {
[INFO] [stderr]    | ------------------ associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 52 |     pub fn system(content: &str) -> Self {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `messages` is never used
[INFO] [stderr]   --> src/memory_model.rs:77:12
[INFO] [stderr]    |
[INFO] [stderr] 66 | impl ShortTermMemory {
[INFO] [stderr]    | -------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 77 |     pub fn messages(&self) -> &[DialogMessage] {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `keys` and `clear` are never used
[INFO] [stderr]    --> src/memory_model.rs:129:12
[INFO] [stderr]     |
[INFO] [stderr] 105 | impl WorkingMemory {
[INFO] [stderr]     | ------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 129 |     pub fn keys(&self) -> Vec<&String> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 141 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `remove` is never used
[INFO] [stderr]    --> src/memory_model.rs:168:12
[INFO] [stderr]     |
[INFO] [stderr] 152 | impl LongTermMemory {
[INFO] [stderr]     | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 168 |     pub fn remove(&mut self, key: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `user_id` is never read
[INFO] [stderr]  --> src/models.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct ApiErrorResponse {
[INFO] [stderr]   |            ---------------- field in this struct
[INFO] [stderr] 5 |     pub error: ApiError,
[INFO] [stderr] 6 |     pub user_id: Option<String>,
[INFO] [stderr]   |         ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `ApiErrorResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `provider_name` is never read
[INFO] [stderr]   --> src/models.rs:19:9
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub struct ApiErrorMetadata {
[INFO] [stderr]    |            ---------------- field in this struct
[INFO] [stderr] 18 |     pub raw: Option<String>,
[INFO] [stderr] 19 |     pub provider_name: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ApiErrorMetadata` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id`, `object`, `created`, `model`, `provider`, and `system_fingerprint` are never read
[INFO] [stderr]   --> src/models.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub struct ChatCompletion {
[INFO] [stderr]    |            -------------- fields in this struct
[INFO] [stderr] 24 |     pub id: String,
[INFO] [stderr]    |         ^^
[INFO] [stderr] 25 |     pub object: String,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 26 |     pub created: u64,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 27 |     pub model: String,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 28 |     pub provider: String,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 29 |     pub system_fingerprint: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ChatCompletion` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `index`, `finish_reason`, and `native_finish_reason` are never read
[INFO] [stderr]   --> src/models.rs:36:9
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub struct Choice {
[INFO] [stderr]    |            ------ fields in this struct
[INFO] [stderr] 36 |     pub index: u32,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 37 |     pub finish_reason: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 38 |     pub native_finish_reason: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Choice` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `role`, `refusal`, `reasoning`, and `reasoning_details` are never read
[INFO] [stderr]   --> src/models.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub struct Message {
[INFO] [stderr]    |            ------- fields in this struct
[INFO] [stderr] 44 |     pub role: String,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 45 |     pub content: String,
[INFO] [stderr] 46 |     pub refusal: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 47 |     pub reasoning: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 48 |     #[serde(default)]
[INFO] [stderr] 49 |     pub reasoning_details: Vec<ReasoningDetail>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `kind`, `text`, `format`, and `index` are never read
[INFO] [stderr]   --> src/models.rs:55:9
[INFO] [stderr]    |
[INFO] [stderr] 53 | pub struct ReasoningDetail {
[INFO] [stderr]    |            --------------- fields in this struct
[INFO] [stderr] 54 |     #[serde(rename = "type")]
[INFO] [stderr] 55 |     pub kind: String,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 56 |     pub text: String,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 57 |     pub format: String,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 58 |     pub index: u32,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ReasoningDetail` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `is_byok`, `prompt_tokens_details`, `cost_details`, and `completion_tokens_details` are never read
[INFO] [stderr]   --> src/models.rs:67:9
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub struct Usage {
[INFO] [stderr]    |            ----- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 67 |     pub is_byok: bool,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 68 |     pub prompt_tokens_details: PromptTokensDetails,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 69 |     pub cost_details: CostDetails,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 70 |     pub completion_tokens_details: CompletionTokensDetails,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Usage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `cached_tokens`, `cache_write_tokens`, `audio_tokens`, and `video_tokens` are never read
[INFO] [stderr]   --> src/models.rs:75:9
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub struct PromptTokensDetails {
[INFO] [stderr]    |            ------------------- fields in this struct
[INFO] [stderr] 75 |     pub cached_tokens: u32,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 76 |     pub cache_write_tokens: u32,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 77 |     pub audio_tokens: u32,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 78 |     pub video_tokens: u32,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PromptTokensDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `upstream_inference_cost`, `upstream_inference_prompt_cost`, and `upstream_inference_completions_cost` are never read
[INFO] [stderr]   --> src/models.rs:83:9
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub struct CostDetails {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr] 83 |     pub upstream_inference_cost: f64,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 84 |     pub upstream_inference_prompt_cost: f64,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 85 |     pub upstream_inference_completions_cost: f64,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CostDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `reasoning_tokens`, `image_tokens`, and `audio_tokens` are never read
[INFO] [stderr]   --> src/models.rs:90:9
[INFO] [stderr]    |
[INFO] [stderr] 89 | pub struct CompletionTokensDetails {
[INFO] [stderr]    |            ----------------------- fields in this struct
[INFO] [stderr] 90 |     pub reasoning_tokens: u32,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 91 |     pub image_tokens: u32,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 92 |     pub audio_tokens: u32,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CompletionTokensDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Detailed` and `Conversational` are never constructed
[INFO] [stderr]   --> src/personalization.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub enum ResponseStyle {
[INFO] [stderr]    |          ------------- variants in this enum
[INFO] [stderr] 13 |     Concise,
[INFO] [stderr] 14 |     Detailed,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 15 |     StepByStep,
[INFO] [stderr] 16 |     Conversational,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ResponseStyle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `PlainText` and `BulletPoints` are never constructed
[INFO] [stderr]   --> src/personalization.rs:33:5
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub enum ResponseFormat {
[INFO] [stderr]    |          -------------- variants in this enum
[INFO] [stderr] 33 |     PlainText,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 34 |     Markdown,
[INFO] [stderr] 35 |     BulletPoints,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ResponseFormat` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_profile` is never used
[INFO] [stderr]    --> src/personalization.rs:229:12
[INFO] [stderr]     |
[INFO] [stderr] 173 | impl ProfileManager {
[INFO] [stderr]     | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 229 |     pub fn get_profile(&self, name: &str) -> Option<&UserProfile> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `with_config` is never used
[INFO] [stderr]    --> src/rag_chat.rs:175:12
[INFO] [stderr]     |
[INFO] [stderr] 162 | impl<E: Embedder, L: LlmClient> RagChat<E, L> {
[INFO] [stderr]     | --------------------------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 175 |     pub fn with_config(mut self, cfg: CitationConfig) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `from_file` is never used
[INFO] [stderr]   --> src/rag_indexing.rs:62:12
[INFO] [stderr]    |
[INFO] [stderr] 53 | impl SourceDocument {
[INFO] [stderr]    | ------------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 62 |     pub fn from_file(path: &Path) -> std::io::Result<Self> {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `with_dim` is never used
[INFO] [stderr]   --> src/rag_indexing.rs:98:12
[INFO] [stderr]    |
[INFO] [stderr] 93 | impl HashEmbedder {
[INFO] [stderr]    | ----------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 98 |     pub fn with_dim(dim: usize) -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_empty` is never used
[INFO] [stderr]    --> src/rag_indexing.rs:275:12
[INFO] [stderr]     |
[INFO] [stderr] 263 | impl RagIndex {
[INFO] [stderr]     | ------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 275 |     pub fn is_empty(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `strategy`, `min_len`, and `max_len` are never read
[INFO] [stderr]    --> src/rag_indexing.rs:314:9
[INFO] [stderr]     |
[INFO] [stderr] 313 | pub struct ChunkingStats {
[INFO] [stderr]     |            ------------- fields in this struct
[INFO] [stderr] 314 |     pub strategy: &'static str,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 317 |     pub min_len: usize,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] 318 |     pub max_len: usize,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ChunkingStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `source_hits` and `source_total` are never read
[INFO] [stderr]    --> src/rag_query.rs:196:9
[INFO] [stderr]     |
[INFO] [stderr] 193 | pub struct AnswerMetrics {
[INFO] [stderr]     |            ------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 196 |     pub source_hits: usize,
[INFO] [stderr]     |         ^^^^^^^^^^^
[INFO] [stderr] 197 |     pub source_total: usize,
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `AnswerMetrics` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `source_recall` is never used
[INFO] [stderr]    --> src/rag_query.rs:209:12
[INFO] [stderr]     |
[INFO] [stderr] 200 | impl AnswerMetrics {
[INFO] [stderr]     | ------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 209 |     pub fn source_recall(&self) -> f32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `question` is never read
[INFO] [stderr]    --> src/rag_query.rs:285:9
[INFO] [stderr]     |
[INFO] [stderr] 284 | pub struct ComparisonRow {
[INFO] [stderr]     |            ------------- field in this struct
[INFO] [stderr] 285 |     pub question: &'static str,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ComparisonRow` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `precision` and `size` are never read
[INFO] [stderr]    --> src/rag_reranking.rs:174:9
[INFO] [stderr]     |
[INFO] [stderr] 173 | pub struct RetrievalMetrics {
[INFO] [stderr]     |            ---------------- fields in this struct
[INFO] [stderr] 174 |     pub precision: f32,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] 175 |     pub hit_at_k: bool,
[INFO] [stderr] 176 |     pub size: usize,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `RetrievalMetrics` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `from` and `to` are never read
[INFO] [stderr]   --> src/state_transitions.rs:48:9
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub struct TransitionRecord {
[INFO] [stderr]    |            ---------------- fields in this struct
[INFO] [stderr] 48 |     pub from: State,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 49 |     pub to: State,
[INFO] [stderr]    |         ^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TransitionRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `with_transitions` is never used
[INFO] [stderr]    --> src/state_transitions.rs:117:12
[INFO] [stderr]     |
[INFO] [stderr]  64 | impl ControlledStateMachine {
[INFO] [stderr]     | --------------------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 117 |     pub fn with_transitions(transitions: HashMap<State, HashSet<State>>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `ApprovePlan` and `Finalize` are never constructed
[INFO] [stderr]   --> src/task_state_machine.rs:33:5
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub enum ExpectedAction {
[INFO] [stderr]    |          -------------- variants in this enum
[INFO] [stderr] 32 |     DefinePlan,
[INFO] [stderr] 33 |     ApprovePlan,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     Finalize,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ExpectedAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `expected_action` and `paused` are never read
[INFO] [stderr]   --> src/task_state_machine.rs:58:9
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub struct TaskSnapshot {
[INFO] [stderr]    |            ------------ fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 58 |     pub expected_action: ExpectedAction,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 59 |     pub paused: bool,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TaskSnapshot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `current_context_size`, `exchanges`, `context_limit`, and `print_growth_report` are never used
[INFO] [stderr]    --> src/token_tracking.rs:107:12
[INFO] [stderr]     |
[INFO] [stderr]  75 | impl TokenTracker {
[INFO] [stderr]     | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 107 |     pub fn current_context_size(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 150 |     pub fn exchanges(&self) -> &[ExchangeUsage] {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 155 |     pub fn context_limit(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 196 |     pub fn print_growth_report(&self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `kairo` (bin "kairo" test) generated 40 warnings (run `cargo fix --bin "kairo" -p kairo --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.42s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/kairo-d66ab82df320be7e)
[INFO] [stdout] 
[INFO] [stdout] running 154 tests
[INFO] [stdout] test context_strategies::tests::test_branching_default_main ... ok
[INFO] [stdout] test context_strategies::tests::test_branching_duplicate_name_error ... ok
[INFO] [stdout] test context_strategies::tests::test_branching_switch_nonexistent_error ... ok
[INFO] [stdout] test context_strategies::tests::test_branching_independent_branches ... ok
[INFO] [stdout] test context_strategies::tests::test_clear_all_strategies ... ok
[INFO] [stdout] test context_strategies::tests::test_branching_create_and_switch ... ok
[INFO] [stdout] test context_strategies::tests::test_compare_strategies ... ok
[INFO] [stdout] test context_strategies::tests::test_facts_remove ... ok
[INFO] [stdout] test context_strategies::tests::test_facts_update ... ok
[INFO] [stdout] test context_strategies::tests::test_sliding_window_truncates ... ok
[INFO] [stdout] test context_strategies::tests::test_sliding_window_within_limit ... ok
[INFO] [stdout] test context_strategies::tests::test_sliding_window_stats ... ok
[INFO] [stdout] test history_compression::tests::test_compressed_saves_tokens ... ok
[INFO] [stdout] test history_compression::tests::test_custom_summarizer ... ok
[INFO] [stdout] test history_compression::tests::test_empty_history ... ok
[INFO] [stdout] test history_compression::tests::test_full_context_unchanged ... ok
[INFO] [stdout] test history_compression::tests::test_incremental_compression ... ok
[INFO] [stdout] test context_strategies::tests::test_facts_persist_beyond_window ... ok
[INFO] [stdout] test history_compression::tests::test_multiple_chunks_compression ... ok
[INFO] [stdout] test history_compression::tests::test_no_compression_when_within_window ... ok
[INFO] [stdout] test history_compression::tests::test_single_chunk_compression ... ok
[INFO] [stdout] test history_compression::tests::test_recent_messages_are_last_n ... ok
[INFO] [stdout] test invariants::tests::test_add_and_remove ... ok
[INFO] [stdout] test invariants::tests::test_case_insensitive ... ok
[INFO] [stdout] test history_compression::tests::test_stats_report ... ok
[INFO] [stdout] test invariants::tests::test_architecture_violation ... ok
[INFO] [stdout] test invariants::tests::test_by_category ... ok
[INFO] [stdout] test invariants::tests::test_context_prompt ... ok
[INFO] [stdout] test invariants::tests::test_business_rule_violation ... ok
[INFO] [stdout] test invariants::tests::test_empty_store_validates_anything ... ok
[INFO] [stdout] test invariants::tests::test_explain_refusal ... ok
[INFO] [stdout] test invariants::tests::test_multiple_violations ... ok
[INFO] [stdout] test invariants::tests::test_tech_stack_violation ... ok
[INFO] [stdout] test invariants::tests::test_valid_proposal ... ok
[INFO] [stdout] test mcp_composition::tests::search_filters_by_query ... ok
[INFO] [stdout] test mcp_connection::tests::client_rejects_calls_before_connect ... ok
[INFO] [stdout] test mcp_composition::tests::summary_includes_all_documents ... ok
[INFO] [stdout] test mcp_connection::tests::echo_tool_returns_text ... ok
[INFO] [stdout] test mcp_connection::tests::add_tool_sums_numbers ... ok
[INFO] [stdout] test mcp_connection::tests::client_lists_tools_after_connect ... ok
[INFO] [stdout] test mcp_connection::tests::unknown_tool_errors ... ok
[INFO] [stdout] test mcp_scheduler::tests::cancel_removes_task ... ok
[INFO] [stdout] test mcp_scheduler::tests::mcp_tools_round_trip ... ok
[INFO] [stdout] test mcp_orchestration::tests::unknown_server_errors ... ok
[INFO] [stdout] test mcp_scheduler::tests::once_task_fires_and_disappears ... ok
[INFO] [stdout] test mcp_scheduler::tests::periodic_task_fires_multiple_times ... ok
[INFO] [stdout] test mcp_composition::tests::full_pipeline_writes_file ... ok
[INFO] [stdout] test mcp_composition::tests::empty_search_produces_empty_summary ... ok
[INFO] [stdout] test mcp_orchestration::tests::unknown_tool_errors ... ok
[INFO] [stdout] test mcp_connection::tests::format_list_contains_names ... ok
[INFO] [stdout] test context_strategies::tests::test_facts_no_system_message_when_empty ... ok
[INFO] [stdout] test mcp_orchestration::tests::catalog_groups_tools_by_server ... ok
[INFO] [stdout] test mcp_orchestration::tests::registry_lists_all_servers ... ok
[INFO] [stdout] test mcp_orchestration::tests::route_by_namespace ... ok
[INFO] [stdout] test mcp_orchestration::tests::route_by_unique_tool_name ... ok
[INFO] [stdout] test mcp_composition::tests::pipeline_passes_data_between_steps ... ok
[INFO] [stdout] test mcp_scheduler::tests::summary_counts_types ... ok
[INFO] [stdout] test mcp_tool::tests::agent_lists_multiple_issues ... ok
[INFO] [stdout] test memory_model::tests::test_context_prompt_empty ... ok
[INFO] [stdout] test memory_model::tests::test_long_term_memory ... ok
[INFO] [stdout] test mcp_tool::tests::tracker_api_roundtrip ... ok
[INFO] [stdout] test memory_model::tests::test_promote_to_long_term ... ok
[INFO] [stdout] test memory_model::tests::test_context_prompt_all_layers ... ok
[INFO] [stdout] test mcp_scheduler::tests::persistence_roundtrip ... ok
[INFO] [stdout] test memory_model::tests::test_working_memory ... ok
[INFO] [stdout] test mcp_tool::tests::agent_can_create_and_fetch_issue ... ok
[INFO] [stdout] test memory_model::tests::test_long_term_search_case_insensitive ... ok
[INFO] [stdout] test memory_model::tests::test_promote_nonexistent_fails ... ok
[INFO] [stdout] test mcp_tool::tests::demo_scenario_runs_end_to_end ... ok
[INFO] [stdout] test mcp_tool::tests::missing_title_is_invalid_args ... ok
[INFO] [stdout] test mcp_composition::tests::trace_records_all_three_steps ... ok
[INFO] [stdout] test mcp_tool::tests::get_missing_issue_returns_none ... ok
[INFO] [stdout] test memory_model::tests::test_last_n_more_than_available ... ok
[INFO] [stdout] test memory_model::tests::test_working_memory_overwrite ... ok
[INFO] [stdout] test personalization::tests::test_active_system_prompt ... ok
[INFO] [stdout] test personalization::tests::test_empty_manager_no_prompt ... ok
[INFO] [stdout] test personalization::tests::test_custom_preferences ... ok
[INFO] [stdout] test personalization::tests::test_different_profiles_different_prompts ... ok
[INFO] [stdout] test memory_model::tests::test_short_term_memory ... ok
[INFO] [stdout] test personalization::tests::test_minimal_profile ... ok
[INFO] [stdout] test personalization::tests::test_profile_creation ... ok
[INFO] [stdout] test personalization::tests::test_profile_manager_add_and_active ... ok
[INFO] [stdout] test personalization::tests::test_profile_manager_first_auto_active ... ok
[INFO] [stdout] test personalization::tests::test_profile_manager_switch ... ok
[INFO] [stdout] test rag_chat::tests::task_state_renders_human_readable ... ok
[INFO] [stdout] test personalization::tests::test_profile_manager_switch_nonexistent ... ok
[INFO] [stdout] test personalization::tests::test_remove_active_profile_denied ... ok
[INFO] [stdout] test rag_chat::tests::reset_clears_history_and_state ... ok
[INFO] [stdout] test rag_chat::tests::max_history_truncates_old_messages ... ok
[INFO] [stdout] test rag_chat::tests::single_message_produces_cited_answer ... ok
[INFO] [stdout] test rag_chat::tests::scenario_one_preserves_goal ... ok
[INFO] [stdout] test rag_chat::tests::all_non_idk_answers_cite_sources ... ok
[INFO] [stdout] test personalization::tests::test_remove_inactive_profile ... ok
[INFO] [stdout] test rag_chat::tests::scenario_two_uses_multiple_sources ... ok
[INFO] [stdout] test rag_citations::tests::answer_contains_sources_and_quotes ... ok
[INFO] [stdout] test rag_citations::tests::source_ref_serializes ... ok
[INFO] [stdout] test rag_indexing::tests::cosine_similarity_bounds ... ok
[INFO] [stdout] test rag_citations::tests::quote_is_truncated ... ok
[INFO] [stdout] test rag_indexing::tests::hash_embedder_is_deterministic ... ok
[INFO] [stdout] test rag_indexing::tests::build_index_includes_metadata ... ok
[INFO] [stdout] test personalization::tests::test_system_prompt_generation ... ok
[INFO] [stdout] test rag_citations::tests::low_relevance_triggers_dont_know ... ok
[INFO] [stdout] test rag_indexing::tests::structure_aware_splits_by_headings ... ok
[INFO] [stdout] test rag_query::tests::ten_control_questions_defined ... ok
[INFO] [stdout] test rag_citations::tests::validation_detects_quote_match ... ok
[INFO] [stdout] test rag_reranking::tests::filter_rerank_pipeline_returns_final_k ... ok
[INFO] [stdout] test rag_indexing::tests::compare_strategies_stats ... ok
[INFO] [stdout] test rag_reranking::tests::rerank_keeps_relevant_top ... ok
[INFO] [stdout] test rag_indexing::tests::fixed_size_chunking_produces_overlap ... ok
[INFO] [stdout] test rag_query::tests::search_returns_top_k_sorted ... ok
[INFO] [stdout] test rag_query::tests::with_rag_beats_no_rag_on_keyword_recall ... ok
[INFO] [stdout] test rag_query::tests::evaluation_counts_hits ... ok
[INFO] [stdout] test rag_citations::tests::suite_runs_on_all_ten_questions ... ok
[INFO] [stdout] test rag_reranking::tests::rewrite_adds_variants_for_mcp ... ok
[INFO] [stdout] test rag_reranking::tests::rewrite_pipeline_dedupes_by_chunk_id ... ok
[INFO] [stdout] test rag_reranking::tests::rewrite_returns_original_when_unknown ... ok
[INFO] [stdout] test rag_indexing::tests::index_json_roundtrip ... ok
[INFO] [stdout] test rag_query::tests::with_rag_provides_chunks ... ok
[INFO] [stdout] test rag_query::tests::no_rag_has_no_chunks ... ok
[INFO] [stdout] test state_transitions::tests::test_allowed_from_current ... ok
[INFO] [stdout] test state_transitions::tests::test_cannot_pause_when_done ... ok
[INFO] [stdout] test state_transitions::tests::test_cannot_resume_when_not_paused ... ok
[INFO] [stdout] test state_transitions::tests::test_double_pause_denied ... ok
[INFO] [stdout] test state_transitions::tests::test_happy_path ... ok
[INFO] [stdout] test state_transitions::tests::test_skip_plan_denied ... ok
[INFO] [stdout] test rag_reranking::tests::threshold_filters_below ... ok
[INFO] [stdout] test state_transitions::tests::test_cannot_execute_before_plan_approved ... ok
[INFO] [stdout] test state_transitions::tests::test_denied_reason_contains_info ... ok
[INFO] [stdout] test state_transitions::tests::test_skip_validation_denied ... ok
[INFO] [stdout] test state_transitions::tests::test_pause_and_resume ... ok
[INFO] [stdout] test rag_reranking::tests::modes_can_be_compared ... ok
[INFO] [stdout] test task_state_machine::tests::test_cannot_advance_past_done ... ok
[INFO] [stdout] test state_transitions::tests::test_transition_after_done_denied ... ok
[INFO] [stdout] test task_state_machine::tests::test_context_prompt ... ok
[INFO] [stdout] test task_state_machine::tests::test_full_lifecycle ... ok
[INFO] [stdout] test task_state_machine::tests::test_initial_state ... ok
[INFO] [stdout] test task_state_machine::tests::test_notes ... ok
[INFO] [stdout] test task_state_machine::tests::test_pause_and_resume ... ok
[INFO] [stdout] test task_state_machine::tests::test_pause_preserves_notes ... ok
[INFO] [stdout] test task_state_machine::tests::test_resume_when_not_paused ... ok
[INFO] [stdout] test task_state_machine::tests::test_step_counter ... ok
[INFO] [stdout] test token_tracking::tests::test_estimate_tokens ... ok
[INFO] [stdout] test task_state_machine::tests::test_transition_log ... ok
[INFO] [stdout] test token_tracking::tests::test_overflow_exceeded ... ok
[INFO] [stdout] test token_tracking::tests::test_cumulative_tracking ... ok
[INFO] [stdout] test token_tracking::tests::test_overflow_warning ... ok
[INFO] [stdout] test token_tracking::tests::test_overflow_ok ... ok
[INFO] [stdout] test token_tracking::tests::test_record_exchange ... ok
[INFO] [stdout] test token_tracking::tests::test_simulate_overflow_dialog ... ok
[INFO] [stdout] test token_tracking::tests::test_record_from_text ... ok
[INFO] [stdout] test token_tracking::tests::test_simulate_short_dialog ... ok
[INFO] [stdout] test token_tracking::tests::test_token_growth_is_monotonic ... ok
[INFO] [stderr] error: test failed, to rerun pass `--bin kairo`
[INFO] [stdout] test mcp_orchestration::tests::long_scenario_uses_multiple_servers ... FAILED
[INFO] [stdout] test rag_chat::tests::state_extracts_goal_and_constraint ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- mcp_orchestration::tests::long_scenario_uses_multiple_servers stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'mcp_orchestration::tests::long_scenario_uses_multiple_servers' (66) panicked at src/mcp_orchestration.rs:275:60:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: UnknownTool("server 'pipeline' not registered")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64a95617f4fa - std[29689e6404d28ef9]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x64a95617f4fa - std[29689e6404d28ef9]::backtrace_rs::backtrace::trace_unsynchronized::<std[29689e6404d28ef9]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x64a95617f4fa - std[29689e6404d28ef9]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x64a95617f4fa - <<std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[e929cb53b82a81ca]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x64a956195b8a - <core[e929cb53b82a81ca]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x64a956195b8a - core[e929cb53b82a81ca]::fmt::write
[INFO] [stdout]    6:     0x64a956183e12 - std[29689e6404d28ef9]::io::default_write_fmt::<alloc[9d7caffeb3b5d2c6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x64a956183e12 - <alloc[9d7caffeb3b5d2c6]::vec::Vec<u8> as std[29689e6404d28ef9]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x64a95615cabf - <std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x64a95615cabf - std[29689e6404d28ef9]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x64a956176d99 - std[29689e6404d28ef9]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x64a9560d4fbc - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x64a9560d4fbc - test[a24b3028667022f7]::test_main_inner::<test[a24b3028667022f7]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x64a956176f52 - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x64a956176f52 - std[29689e6404d28ef9]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x64a95615cb78 - std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x64a956151b59 - std[29689e6404d28ef9]::sys::backtrace::__rust_end_short_backtrace::<std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x64a95615d88d - __rustc[3aed6af316653e63]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x64a95619631c - core[e929cb53b82a81ca]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x64a956196092 - core[e929cb53b82a81ca]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x64a956054797 - <core[e929cb53b82a81ca]::result::Result<serde_json[c60c678a728a9f5d]::value::Value, kairo[4566c4c64f5d2ddf]::mcp_connection::McpError>>::unwrap
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x64a956054797 - kairo[4566c4c64f5d2ddf]::mcp_orchestration::tests::long_scenario_uses_multiple_servers
[INFO] [stdout]                                at /opt/rustwide/workdir/src/mcp_orchestration.rs:275:60
[INFO] [stdout]   22:     0x64a956051207 - kairo[4566c4c64f5d2ddf]::mcp_orchestration::tests::long_scenario_uses_multiple_servers::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/mcp_orchestration.rs:271:45
[INFO] [stdout]   23:     0x64a95602a896 - <kairo[4566c4c64f5d2ddf]::mcp_orchestration::tests::long_scenario_uses_multiple_servers::{closure#0} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x64a9560c829b - <fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x64a9560c829b - test[a24b3028667022f7]::__rust_begin_short_backtrace::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x64a9560d5a8b - test[a24b3028667022f7]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x64a9560d5a8b - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x64a9560d5a8b - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x64a9560d5a8b - std[29689e6404d28ef9]::panicking::catch_unwind::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x64a9560d5a8b - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x64a9560d5a8b - test[a24b3028667022f7]::run_test_in_process
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x64a9560d5a8b - test[a24b3028667022f7]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x64a9560cf1a4 - test[a24b3028667022f7]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x64a9560cf1a4 - std[29689e6404d28ef9]::sys::backtrace::__rust_begin_short_backtrace::<test[a24b3028667022f7]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x64a9560d8692 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x64a9560d8692 - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x64a9560d8692 - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x64a9560d8692 - std[29689e6404d28ef9]::panicking::catch_unwind::<(), core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x64a9560d8692 - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x64a9560d8692 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x64a9560d8692 - <std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x64a95617e8ef - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn core[e929cb53b82a81ca]::ops::function::FnOnce<(), Output = ()> + core[e929cb53b82a81ca]::marker::Send> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   43:     0x64a95617e8ef - <std[29689e6404d28ef9]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7ed857f06aa4 - <unknown>
[INFO] [stdout]   45:     0x7ed857f93a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- rag_chat::tests::state_extracts_goal_and_constraint stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'rag_chat::tests::state_extracts_goal_and_constraint' (113) panicked at src/rag_chat.rs:324:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: 2
[INFO] [stdout]  right: 1
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64a95617f4fa - std[29689e6404d28ef9]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x64a95617f4fa - std[29689e6404d28ef9]::backtrace_rs::backtrace::trace_unsynchronized::<std[29689e6404d28ef9]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x64a95617f4fa - std[29689e6404d28ef9]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x64a95617f4fa - <<std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[e929cb53b82a81ca]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x64a956195b8a - <core[e929cb53b82a81ca]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x64a956195b8a - core[e929cb53b82a81ca]::fmt::write
[INFO] [stdout]    6:     0x64a956183e12 - std[29689e6404d28ef9]::io::default_write_fmt::<alloc[9d7caffeb3b5d2c6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x64a956183e12 - <alloc[9d7caffeb3b5d2c6]::vec::Vec<u8> as std[29689e6404d28ef9]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x64a95615cabf - <std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x64a95615cabf - std[29689e6404d28ef9]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x64a956176d99 - std[29689e6404d28ef9]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x64a9560d4fbc - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x64a9560d4fbc - test[a24b3028667022f7]::test_main_inner::<test[a24b3028667022f7]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x64a956176f52 - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x64a956176f52 - std[29689e6404d28ef9]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x64a95615cb78 - std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x64a956151b59 - std[29689e6404d28ef9]::sys::backtrace::__rust_end_short_backtrace::<std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x64a95615d88d - __rustc[3aed6af316653e63]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x64a95619631c - core[e929cb53b82a81ca]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x64a9561961d3 - core[e929cb53b82a81ca]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x64a95619158d - core[e929cb53b82a81ca]::panicking::assert_failed::<usize, usize>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x64a95603e62b - kairo[4566c4c64f5d2ddf]::rag_chat::tests::state_extracts_goal_and_constraint
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rag_chat.rs:324:9
[INFO] [stdout]   22:     0x64a9560326b7 - kairo[4566c4c64f5d2ddf]::rag_chat::tests::state_extracts_goal_and_constraint::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rag_chat.rs:318:44
[INFO] [stdout]   23:     0x64a95602b766 - <kairo[4566c4c64f5d2ddf]::rag_chat::tests::state_extracts_goal_and_constraint::{closure#0} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x64a9560c829b - <fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x64a9560c829b - test[a24b3028667022f7]::__rust_begin_short_backtrace::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x64a9560d5a8b - test[a24b3028667022f7]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x64a9560d5a8b - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x64a9560d5a8b - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x64a9560d5a8b - std[29689e6404d28ef9]::panicking::catch_unwind::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x64a9560d5a8b - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x64a9560d5a8b - test[a24b3028667022f7]::run_test_in_process
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x64a9560d5a8b - test[a24b3028667022f7]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x64a9560cf1a4 - test[a24b3028667022f7]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x64a9560cf1a4 - std[29689e6404d28ef9]::sys::backtrace::__rust_begin_short_backtrace::<test[a24b3028667022f7]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x64a9560d8692 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x64a9560d8692 - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x64a9560d8692 - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x64a9560d8692 - std[29689e6404d28ef9]::panicking::catch_unwind::<(), core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x64a9560d8692 - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x64a9560d8692 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x64a9560d8692 - <std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x64a95617e8ef - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn core[e929cb53b82a81ca]::ops::function::FnOnce<(), Output = ()> + core[e929cb53b82a81ca]::marker::Send> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   43:     0x64a95617e8ef - <std[29689e6404d28ef9]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7ed857f06aa4 - <unknown>
[INFO] [stdout]   45:     0x7ed857f93a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     mcp_orchestration::tests::long_scenario_uses_multiple_servers
[INFO] [stdout]     rag_chat::tests::state_extracts_goal_and_constraint
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 152 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "fdca8776ed845ca1fd4487a656a8db8df599028093112ebf3ca4032e139dd613", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fdca8776ed845ca1fd4487a656a8db8df599028093112ebf3ca4032e139dd613", kill_on_drop: false }`
[INFO] [stdout] fdca8776ed845ca1fd4487a656a8db8df599028093112ebf3ca4032e139dd613
