[INFO] fetching crate next-web-ai 0.1.0...
[INFO] checking next-web-ai-0.1.0 against try#93086cfebfccb79083c59d0d3b2052944bba643c for pr-146440-1
[INFO] extracting crate next-web-ai 0.1.0 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate next-web-ai 0.1.0
[INFO] finished tweaking crates.io crate next-web-ai 0.1.0
[INFO] tweaked toml for crates.io crate next-web-ai 0.1.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate next-web-ai 0.1.0 on toolchain 93086cfebfccb79083c59d0d3b2052944bba643c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+93086cfebfccb79083c59d0d3b2052944bba643c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate next-web-ai 0.1.0 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" "+93086cfebfccb79083c59d0d3b2052944bba643c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+93086cfebfccb79083c59d0d3b2052944bba643c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ffa246c855cdcfa92b795bc1ba7bb358587b3ef8202e215a98265396a2959e10
[INFO] running `Command { std: "docker" "start" "-a" "ffa246c855cdcfa92b795bc1ba7bb358587b3ef8202e215a98265396a2959e10", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ffa246c855cdcfa92b795bc1ba7bb358587b3ef8202e215a98265396a2959e10", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ffa246c855cdcfa92b795bc1ba7bb358587b3ef8202e215a98265396a2959e10", kill_on_drop: false }`
[INFO] [stdout] ffa246c855cdcfa92b795bc1ba7bb358587b3ef8202e215a98265396a2959e10
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+93086cfebfccb79083c59d0d3b2052944bba643c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d1f9331c0363238ae485686e0600939f137f0f889ddfbfdd5e3a778b938a9b14
[INFO] running `Command { std: "docker" "start" "-a" "d1f9331c0363238ae485686e0600939f137f0f889ddfbfdd5e3a778b938a9b14", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]     Checking bytes v1.10.1
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]     Checking cfg-if v1.0.1
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]     Checking slab v0.4.10
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]    Compiling cc v1.2.30
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]     Checking tower-service v0.3.3
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]     Checking atomic-waker v1.1.2
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]     Checking http v1.3.1
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]     Checking try-lock v0.2.5
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking want v0.3.1
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]    Compiling serde_json v1.0.141
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking httpdate v1.0.3
[INFO] [stderr]     Checking tower-layer v0.3.3
[INFO] [stderr]     Checking openssl-probe v0.1.6
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]    Compiling rustversion v1.0.21
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]     Checking anstyle v1.0.11
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]     Checking anstyle-query v1.1.3
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]     Checking strsim v0.11.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]     Checking anstream v0.6.19
[INFO] [stderr]     Checking clap_lex v0.7.5
[INFO] [stderr]     Checking iri-string v0.7.8
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking clap_builder v4.5.42
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking socket2 v0.6.0
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking rustls-pki-types v1.12.0
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking matchit v0.8.4
[INFO] [stderr]     Checking inventory v0.3.20
[INFO] [stderr]     Checking dyn-clone v1.0.20
[INFO] [stderr]     Checking sys-locale v0.3.2
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling clap_derive v4.5.41
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]     Checking tokio v1.47.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking axum-core v0.5.2
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking clap v4.5.42
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking hashbrown v0.15.4
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking serde_path_to_error v0.1.17
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking async-compression v0.4.27
[INFO] [stderr]     Checking indexmap v2.10.0
[INFO] [stderr]     Checking validator v0.20.0
[INFO] [stderr]     Checking tower-http v0.6.6
[INFO] [stderr]     Checking h2 v0.4.11
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]     Checking hyper-util v0.1.16
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking axum v0.8.4
[INFO] [stderr]     Checking reqwest v0.12.22
[INFO] [stderr]     Checking next-web-core v0.1.4
[INFO] [stderr]     Checking next-web-ai v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `model_request::ModelRequest`, `model_response::ModelResponse`, and `model_result::ModelResult`
[INFO] [stdout]  --> src/chat/model/chat_model.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 |         model::Model, model_request::ModelRequest, model_response::ModelResponse,
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |         model_result::ModelResult,
[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 imports: `model_request::ModelRequest`, `model_response::ModelResponse`, and `model_result::ModelResult`
[INFO] [stdout]  --> src/model/model.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     model_request::ModelRequest, model_response::ModelResponse, model_result::ModelResult,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `autoconfigure::context`
[INFO] [stdout]  --> src/observation/observation_handler.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use next_web_core::{autoconfigure::context, DynClone};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]  --> src/observation/simple_event.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::time;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `autoconfigure::context` and `convert::into_box::IntoBox`
[INFO] [stdout]  --> src/observation/simple_observation.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use next_web_core::{autoconfigure::context, convert::into_box::IntoBox};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `model_request::ModelRequest`, `model_response::ModelResponse`, and `model_result::ModelResult`
[INFO] [stdout]  --> src/chat/model/chat_model.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 |         model::Model, model_request::ModelRequest, model_response::ModelResponse,
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |         model_result::ModelResult,
[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 imports: `model_request::ModelRequest`, `model_response::ModelResponse`, and `model_result::ModelResult`
[INFO] [stdout]  --> src/model/model.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     model_request::ModelRequest, model_response::ModelResponse, model_result::ModelResult,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `autoconfigure::context`
[INFO] [stdout]  --> src/observation/observation_handler.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use next_web_core::{autoconfigure::context, DynClone};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]  --> src/observation/simple_event.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::time;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `autoconfigure::context` and `convert::into_box::IntoBox`
[INFO] [stdout]  --> src/observation/simple_observation.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use next_web_core::{autoconfigure::context, convert::into_box::IntoBox};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/chat/client/default_chat_client.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |             response: todo!(),
[INFO] [stdout]     |                       ------- any code following this expression is unreachable
[INFO] [stdout] 115 |             entity,
[INFO] [stdout]     |             ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `observation_convention::ObservationConvention`
[INFO] [stdout]   --> src/chat/observation/chat_model_observation_documentation.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     observation_convention::ObservationConvention,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chat::observation::observation_convention::ObservationConvention`
[INFO] [stdout]  --> src/observation/simple_observation.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     chat::observation::observation_convention::ObservationConvention,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Converter`
[INFO] [stdout]   --> src/chat/client/default_chat_client.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 |     convert::converter::{Converter, StructuredOutputConverter},
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/chat/client/default_chat_client.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |             response: todo!(),
[INFO] [stdout]     |                       ------- any code following this expression is unreachable
[INFO] [stdout] 115 |             entity,
[INFO] [stdout]     |             ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `system_message`
[INFO] [stdout]   --> src/ai/deep_seek/deep_seek_chat_model.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let system_message = system_messages.first();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_system_message`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]    --> src/ai/deep_seek/deep_seek_chat_model.rs:102:21
[INFO] [stdout]     |
[INFO] [stdout] 102 |         if let Some(options) = self.options.as_ref() {}
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]    --> src/ai/deep_seek/deep_seek_chat_model.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |         if let Some(options) = prompt.options() {}
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `observation_convention::ObservationConvention`
[INFO] [stdout]   --> src/chat/observation/chat_model_observation_documentation.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     observation_convention::ObservationConvention,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chat::observation::observation_convention::ObservationConvention`
[INFO] [stdout]  --> src/observation/simple_observation.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     chat::observation::observation_convention::ObservationConvention,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Converter`
[INFO] [stdout]   --> src/chat/client/default_chat_client.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 |     convert::converter::{Converter, StructuredOutputConverter},
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `system_message`
[INFO] [stdout]   --> src/ai/deep_seek/deep_seek_chat_model.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let system_message = system_messages.first();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_system_message`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]    --> src/ai/deep_seek/deep_seek_chat_model.rs:102:21
[INFO] [stdout]     |
[INFO] [stdout] 102 |         if let Some(options) = self.options.as_ref() {}
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]    --> src/ai/deep_seek/deep_seek_chat_model.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |         if let Some(options) = prompt.options() {}
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> src/chat/client/default_chat_client.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let entity = output_converter.convert(resp_content);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/chat/meta_data/chat_response_meta_data.rs:24:22
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn get<T>(&self, key: impl AsRef<str>) -> T {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/chat/meta_data/chat_response_meta_data.rs:28:33
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn get_or_default<T>(&self, key: impl AsRef<str>, default: T) -> T {
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default`
[INFO] [stdout]   --> src/chat/meta_data/chat_response_meta_data.rs:28:55
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn get_or_default<T>(&self, key: impl AsRef<str>, default: T) -> T {
[INFO] [stdout]    |                                                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `registry`
[INFO] [stdout]   --> src/chat/observation/chat_model_observation_context.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |         registry: &dyn crate::observation::observation_registry::ObservationRegistry,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_registry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_values`
[INFO] [stdout]   --> src/chat/observation/chat_model_observation_context.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |         key_values: crate::util::key_values::KeyValues<Box<dyn crate::util::key_value::KeyValue>>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/chat/observation/default_chat_model_observation_convention.rs:35:32
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn supports_context(&self, context: &dyn crate::observation::observation::Context) -> bool {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/chat/observation/observation_convention.rs:12:42
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn low_cardinality_key_values(&self, context: &dyn Context) -> KeyValues<Box<dyn KeyValue>> {
[INFO] [stdout]    |                                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/chat/observation/observation_convention.rs:16:43
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn high_cardinality_key_values(&self, context: &dyn Context) -> KeyValues<Box<dyn KeyValue>> {
[INFO] [stdout]    |                                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/chat/observation/observation_convention.rs:26:31
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn contextual_name(&self, context: &dyn Context) -> Option<&str> {
[INFO] [stdout]    |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contextual_name`
[INFO] [stdout]   --> src/observation/noop_observation.rs:26:35
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn contextual_name(&mut self, contextual_name: &str) {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contextual_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_observation`
[INFO] [stdout]   --> src/observation/noop_observation.rs:30:38
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn parent_observation(&mut self, parent_observation: Box<dyn Observation>) {
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_observation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_value`
[INFO] [stdout]   --> src/observation/noop_observation.rs:34:45
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn low_cardinality_key_value(&mut self, key_value: Box<dyn crate::util::key_value::KeyValue>) {
[INFO] [stdout]    |                                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_value`
[INFO] [stdout]   --> src/observation/noop_observation.rs:38:46
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn high_cardinality_key_value(&mut self, key_value: Box<dyn crate::util::key_value::KeyValue>) {
[INFO] [stdout]    |                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `observation_convention`
[INFO] [stdout]   --> src/observation/noop_observation.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         observation_convention: super::observation_documentation::BoxObservationConvention,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_observation_convention`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]   --> src/observation/noop_observation.rs:49:25
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn error(&mut self, error: &next_web_core::error::BoxError) {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/observation/noop_observation.rs:53:25
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn event(&mut self, event: Box<dyn super::observation::Event>) {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `registry`
[INFO] [stdout]    --> src/observation/observation.rs:171:55
[INFO] [stdout]     |
[INFO] [stdout] 171 |     fn set_parent_from_current_observation(&mut self, registry: &dyn ObservationRegistry) {}
[INFO] [stdout]     |                                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_registry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/observation/observation.rs:173:28
[INFO] [stdout]     |
[INFO] [stdout] 173 |     fn set_name(&mut self, name: &str) {}
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_values`
[INFO] [stdout]    --> src/observation/observation.rs:175:50
[INFO] [stdout]     |
[INFO] [stdout] 175 |     fn add_low_cardinality_key_values(&mut self, key_values: KeyValues<Box<dyn KeyValue>>) {}
[INFO] [stdout]     |                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contextual_name`
[INFO] [stdout]    --> src/observation/observation.rs:177:39
[INFO] [stdout]     |
[INFO] [stdout] 177 |     fn set_contextual_name(&mut self, contextual_name: &str) {}
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contextual_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_observation`
[INFO] [stdout]    --> src/observation/simple_observation.rs:146:38
[INFO] [stdout]     |
[INFO] [stdout] 146 |     fn parent_observation(&mut self, parent_observation: Box<dyn Observation>) {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_observation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_value`
[INFO] [stdout]    --> src/observation/simple_observation.rs:150:45
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn low_cardinality_key_value(&mut self, key_value: Box<dyn crate::util::key_value::KeyValue>) {
[INFO] [stdout]     |                                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_value`
[INFO] [stdout]    --> src/observation/simple_observation.rs:154:46
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn high_cardinality_key_value(&mut self, key_value: Box<dyn crate::util::key_value::KeyValue>) {
[INFO] [stdout]     |                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `observation_convention`
[INFO] [stdout]    --> src/observation/simple_observation.rs:158:42
[INFO] [stdout]     |
[INFO] [stdout] 158 |     fn observation_convention(&mut self, observation_convention: BoxObservationConvention) {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_observation_convention`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/observation/simple_observation.rs:162:25
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn error(&mut self, error: &next_web_core::error::BoxError) {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/observation/simple_observation.rs:166:25
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn event(&mut self, event: Box<dyn super::observation::Event>) {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> src/chat/client/default_chat_client.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let entity = output_converter.convert(resp_content);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `chat_model` is never read
[INFO] [stdout]   --> src/ai/deep_seek/api/deep_seek_api.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct DeepSeekApi {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub(crate) chat_model: ChatModel,
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeepSeekApi` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]  --> src/ai/deep_seek/deep_seek_chat_options.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct DeepSeekChatOptions {
[INFO] [stdout]   |            ------------------- fields in this struct
[INFO] [stdout] 3 |     model: Box<str>,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 4 |     frequency_penalty: f64,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     max_tokens: u64,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 6 |     presence_penalty: f64,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     response_format: Box<str>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     stop: Vec<String>,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 9 |     top_p: f64,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DeepSeekChatOptions` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `DefaultChatClient` is never constructed
[INFO] [stdout]   --> src/chat/client/default_chat_client.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct DefaultChatClient {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]    = note: `#[deny(unused_unconstructable_pub_structs)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `DefaultChatClientRequestSpec` is never constructed
[INFO] [stdout]   --> src/chat/client/default_chat_client.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct DefaultChatClientRequestSpec {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `DefaultCallResponseSpec` is never constructed
[INFO] [stdout]    --> src/chat/client/default_chat_client.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct DefaultCallResponseSpec {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `DefaultStreamResponseSpec` is never constructed
[INFO] [stdout]    --> src/chat/client/default_chat_client.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct DefaultStreamResponseSpec {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `chat_model` and `advisors` are never read
[INFO] [stdout]   --> src/chat/client/default_chat_client.rs:60:16
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct DefaultChatClientRequestSpec {
[INFO] [stdout]    |            ---------------------------- fields in this struct
[INFO] [stdout] 60 |     pub(crate) chat_model: Box<dyn ChatModel>,
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 61 |     pub(crate) messages: Vec<Box<dyn Message>>,
[INFO] [stdout] 62 |     pub(crate) advisors: Vec<Box<dyn Advisor>>,
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DefaultChatClientRequestSpec` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `request` is never read
[INFO] [stdout]    --> src/chat/client/default_chat_client.rs:103:16
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct DefaultCallResponseSpec {
[INFO] [stdout]     |            ----------------------- field in this struct
[INFO] [stdout] 103 |     pub(crate) request: DefaultChatClientRequestSpec,
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `do_response_entity` is never used
[INFO] [stdout]    --> src/chat/client/default_chat_client.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl DefaultCallResponseSpec {
[INFO] [stdout]     | ---------------------------- method in this implementation
[INFO] [stdout] 107 |     fn do_response_entity<T, C>(&self, output_converter: C) -> ResponseEntity<ChatResponse, T>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `request` is never read
[INFO] [stdout]    --> src/chat/client/default_chat_client.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct DefaultStreamResponseSpec {
[INFO] [stdout]     |            ------------------------- field in this struct
[INFO] [stdout] 145 |     request: DefaultChatClientRequestSpec,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `metadata`, `finish_reason`, and `content_filters` are never read
[INFO] [stdout]   --> src/chat/meta_data/default_chat_generation_metadata.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct DefaultChatGenerationMetadata {
[INFO] [stdout]    |            ----------------------------- fields in this struct
[INFO] [stdout] 10 |     pub(crate) metadata: Option<HashMap<String, String>>,
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 11 |     pub(crate) finish_reason: Option<String>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub(crate) content_filters: Option<HashSet<Box<str>>>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DefaultChatGenerationMetadata` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `request_model_none` and `response_model_name` are never read
[INFO] [stdout]   --> src/chat/observation/default_chat_model_observation_convention.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct DefaultChatModelObservationConvention {
[INFO] [stdout]    |            ------------------------------------- fields in this struct
[INFO] [stdout] 16 |     request_model_none: Box<dyn KeyValue>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     response_model_name: Box<dyn KeyValue>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DefaultChatModelObservationConvention` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `low_cardinality_key_values` and `high_cardinality_key_values` are never read
[INFO] [stdout]   --> src/chat/observation/model_observation_context.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ModelObservationContext<Q, R> {
[INFO] [stdout]    |            ----------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub(crate) low_cardinality_key_values: BTreeMap<String, Box<dyn KeyValue>>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     pub(crate) high_cardinality_key_values: BTreeMap<String, Box<dyn KeyValue>>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModelObservationContext` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `messages` is never read
[INFO] [stdout]   --> src/chat/prompt/prompt.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Prompt {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 13 |     messages: Vec<Box<dyn Message>>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Prompt` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `observation_config` is never read
[INFO] [stdout]  --> src/observation/noop_observation_registry.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct NoopObservationRegistry {
[INFO] [stdout]   |            ----------------------- field in this struct
[INFO] [stdout] 5 |     observation_config: Option<ObservationConfig>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `NoopObservationRegistry` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `contextual_name` and `wall_time` are never read
[INFO] [stdout]  --> src/observation/simple_event.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct SimpleEvent {
[INFO] [stdout]   |            ----------- fields in this struct
[INFO] [stdout] 6 |     name: String,
[INFO] [stdout] 7 |     contextual_name: String,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     wall_time: u64,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `registry` is never read
[INFO] [stdout]   --> src/observation/simple_observation.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct SimpleObservation {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 18 |     pub(crate) context: Box<dyn Context>,
[INFO] [stdout] 19 |     pub(crate) registry: Box<dyn ObservationRegistry>,
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/chat/meta_data/chat_response_meta_data.rs:24:22
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn get<T>(&self, key: impl AsRef<str>) -> T {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/chat/meta_data/chat_response_meta_data.rs:28:33
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn get_or_default<T>(&self, key: impl AsRef<str>, default: T) -> T {
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default`
[INFO] [stdout]   --> src/chat/meta_data/chat_response_meta_data.rs:28:55
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn get_or_default<T>(&self, key: impl AsRef<str>, default: T) -> T {
[INFO] [stdout]    |                                                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `registry`
[INFO] [stdout]   --> src/chat/observation/chat_model_observation_context.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |         registry: &dyn crate::observation::observation_registry::ObservationRegistry,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_registry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_values`
[INFO] [stdout]   --> src/chat/observation/chat_model_observation_context.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |         key_values: crate::util::key_values::KeyValues<Box<dyn crate::util::key_value::KeyValue>>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/chat/observation/default_chat_model_observation_convention.rs:35:32
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn supports_context(&self, context: &dyn crate::observation::observation::Context) -> bool {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/chat/observation/observation_convention.rs:12:42
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn low_cardinality_key_values(&self, context: &dyn Context) -> KeyValues<Box<dyn KeyValue>> {
[INFO] [stdout]    |                                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/chat/observation/observation_convention.rs:16:43
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn high_cardinality_key_values(&self, context: &dyn Context) -> KeyValues<Box<dyn KeyValue>> {
[INFO] [stdout]    |                                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/chat/observation/observation_convention.rs:26:31
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn contextual_name(&self, context: &dyn Context) -> Option<&str> {
[INFO] [stdout]    |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contextual_name`
[INFO] [stdout]   --> src/observation/noop_observation.rs:26:35
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn contextual_name(&mut self, contextual_name: &str) {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contextual_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent_observation`
[INFO] [stdout]   --> src/observation/noop_observation.rs:30:38
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn parent_observation(&mut self, parent_observation: Box<dyn Observation>) {
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_observation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_value`
[INFO] [stdout]   --> src/observation/noop_observation.rs:34:45
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn low_cardinality_key_value(&mut self, key_value: Box<dyn crate::util::key_value::KeyValue>) {
[INFO] [stdout]    |                                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_value`
[INFO] [stdout]   --> src/observation/noop_observation.rs:38:46
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn high_cardinality_key_value(&mut self, key_value: Box<dyn crate::util::key_value::KeyValue>) {
[INFO] [stdout]    |                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `observation_convention`
[INFO] [stdout]   --> src/observation/noop_observation.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         observation_convention: super::observation_documentation::BoxObservationConvention,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_observation_convention`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]   --> src/observation/noop_observation.rs:49:25
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn error(&mut self, error: &next_web_core::error::BoxError) {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/observation/noop_observation.rs:53:25
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn event(&mut self, event: Box<dyn super::observation::Event>) {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `registry`
[INFO] [stdout]    --> src/observation/observation.rs:171:55
[INFO] [stdout]     |
[INFO] [stdout] 171 |     fn set_parent_from_current_observation(&mut self, registry: &dyn ObservationRegistry) {}
[INFO] [stdout]     |                                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_registry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/observation/observation.rs:173:28
[INFO] [stdout]     |
[INFO] [stdout] 173 |     fn set_name(&mut self, name: &str) {}
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_values`
[INFO] [stdout]    --> src/observation/observation.rs:175:50
[INFO] [stdout]     |
[INFO] [stdout] 175 |     fn add_low_cardinality_key_values(&mut self, key_values: KeyValues<Box<dyn KeyValue>>) {}
[INFO] [stdout]     |                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contextual_name`
[INFO] [stdout]    --> src/observation/observation.rs:177:39
[INFO] [stdout]     |
[INFO] [stdout] 177 |     fn set_contextual_name(&mut self, contextual_name: &str) {}
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contextual_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `next-web-ai` (lib test) due to 4 previous errors; 52 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `parent_observation`
[INFO] [stdout]    --> src/observation/simple_observation.rs:146:38
[INFO] [stdout]     |
[INFO] [stdout] 146 |     fn parent_observation(&mut self, parent_observation: Box<dyn Observation>) {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_observation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_value`
[INFO] [stdout]    --> src/observation/simple_observation.rs:150:45
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn low_cardinality_key_value(&mut self, key_value: Box<dyn crate::util::key_value::KeyValue>) {
[INFO] [stdout]     |                                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_value`
[INFO] [stdout]    --> src/observation/simple_observation.rs:154:46
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn high_cardinality_key_value(&mut self, key_value: Box<dyn crate::util::key_value::KeyValue>) {
[INFO] [stdout]     |                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `observation_convention`
[INFO] [stdout]    --> src/observation/simple_observation.rs:158:42
[INFO] [stdout]     |
[INFO] [stdout] 158 |     fn observation_convention(&mut self, observation_convention: BoxObservationConvention) {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_observation_convention`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/observation/simple_observation.rs:162:25
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn error(&mut self, error: &next_web_core::error::BoxError) {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]    --> src/observation/simple_observation.rs:166:25
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn event(&mut self, event: Box<dyn super::observation::Event>) {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `chat_model` is never read
[INFO] [stdout]   --> src/ai/deep_seek/api/deep_seek_api.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct DeepSeekApi {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub(crate) chat_model: ChatModel,
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeepSeekApi` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]  --> src/ai/deep_seek/deep_seek_chat_options.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct DeepSeekChatOptions {
[INFO] [stdout]   |            ------------------- fields in this struct
[INFO] [stdout] 3 |     model: Box<str>,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 4 |     frequency_penalty: f64,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     max_tokens: u64,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 6 |     presence_penalty: f64,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     response_format: Box<str>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     stop: Vec<String>,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 9 |     top_p: f64,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DeepSeekChatOptions` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `DefaultChatClient` is never constructed
[INFO] [stdout]   --> src/chat/client/default_chat_client.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct DefaultChatClient {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]    = note: `#[deny(unused_unconstructable_pub_structs)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `DefaultChatClientRequestSpec` is never constructed
[INFO] [stdout]   --> src/chat/client/default_chat_client.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct DefaultChatClientRequestSpec {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `DefaultCallResponseSpec` is never constructed
[INFO] [stdout]    --> src/chat/client/default_chat_client.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct DefaultCallResponseSpec {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `DefaultStreamResponseSpec` is never constructed
[INFO] [stdout]    --> src/chat/client/default_chat_client.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct DefaultStreamResponseSpec {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `chat_model` and `advisors` are never read
[INFO] [stdout]   --> src/chat/client/default_chat_client.rs:60:16
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct DefaultChatClientRequestSpec {
[INFO] [stdout]    |            ---------------------------- fields in this struct
[INFO] [stdout] 60 |     pub(crate) chat_model: Box<dyn ChatModel>,
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 61 |     pub(crate) messages: Vec<Box<dyn Message>>,
[INFO] [stdout] 62 |     pub(crate) advisors: Vec<Box<dyn Advisor>>,
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DefaultChatClientRequestSpec` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `request` is never read
[INFO] [stdout]    --> src/chat/client/default_chat_client.rs:103:16
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct DefaultCallResponseSpec {
[INFO] [stdout]     |            ----------------------- field in this struct
[INFO] [stdout] 103 |     pub(crate) request: DefaultChatClientRequestSpec,
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `do_response_entity` is never used
[INFO] [stdout]    --> src/chat/client/default_chat_client.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl DefaultCallResponseSpec {
[INFO] [stdout]     | ---------------------------- method in this implementation
[INFO] [stdout] 107 |     fn do_response_entity<T, C>(&self, output_converter: C) -> ResponseEntity<ChatResponse, T>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `request` is never read
[INFO] [stdout]    --> src/chat/client/default_chat_client.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct DefaultStreamResponseSpec {
[INFO] [stdout]     |            ------------------------- field in this struct
[INFO] [stdout] 145 |     request: DefaultChatClientRequestSpec,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `metadata`, `finish_reason`, and `content_filters` are never read
[INFO] [stdout]   --> src/chat/meta_data/default_chat_generation_metadata.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct DefaultChatGenerationMetadata {
[INFO] [stdout]    |            ----------------------------- fields in this struct
[INFO] [stdout] 10 |     pub(crate) metadata: Option<HashMap<String, String>>,
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 11 |     pub(crate) finish_reason: Option<String>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub(crate) content_filters: Option<HashSet<Box<str>>>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DefaultChatGenerationMetadata` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `request_model_none` and `response_model_name` are never read
[INFO] [stdout]   --> src/chat/observation/default_chat_model_observation_convention.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct DefaultChatModelObservationConvention {
[INFO] [stdout]    |            ------------------------------------- fields in this struct
[INFO] [stdout] 16 |     request_model_none: Box<dyn KeyValue>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     response_model_name: Box<dyn KeyValue>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DefaultChatModelObservationConvention` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `low_cardinality_key_values` and `high_cardinality_key_values` are never read
[INFO] [stdout]   --> src/chat/observation/model_observation_context.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ModelObservationContext<Q, R> {
[INFO] [stdout]    |            ----------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub(crate) low_cardinality_key_values: BTreeMap<String, Box<dyn KeyValue>>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     pub(crate) high_cardinality_key_values: BTreeMap<String, Box<dyn KeyValue>>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModelObservationContext` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `messages` is never read
[INFO] [stdout]   --> src/chat/prompt/prompt.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Prompt {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 13 |     messages: Vec<Box<dyn Message>>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Prompt` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `observation_config` is never read
[INFO] [stdout]  --> src/observation/noop_observation_registry.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct NoopObservationRegistry {
[INFO] [stdout]   |            ----------------------- field in this struct
[INFO] [stdout] 5 |     observation_config: Option<ObservationConfig>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `NoopObservationRegistry` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `contextual_name` and `wall_time` are never read
[INFO] [stdout]  --> src/observation/simple_event.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct SimpleEvent {
[INFO] [stdout]   |            ----------- fields in this struct
[INFO] [stdout] 6 |     name: String,
[INFO] [stdout] 7 |     contextual_name: String,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     wall_time: u64,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `registry` is never read
[INFO] [stdout]   --> src/observation/simple_observation.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct SimpleObservation {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 18 |     pub(crate) context: Box<dyn Context>,
[INFO] [stdout] 19 |     pub(crate) registry: Box<dyn ObservationRegistry>,
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `next-web-ai` (lib) due to 4 previous errors; 52 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "d1f9331c0363238ae485686e0600939f137f0f889ddfbfdd5e3a778b938a9b14", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d1f9331c0363238ae485686e0600939f137f0f889ddfbfdd5e3a778b938a9b14", kill_on_drop: false }`
[INFO] [stdout] d1f9331c0363238ae485686e0600939f137f0f889ddfbfdd5e3a778b938a9b14
