[INFO] fetching crate next-web-ai 0.1.0...
[INFO] testing next-web-ai-0.1.0 against beta-2025-10-28 for beta-1.92-2
[INFO] extracting crate next-web-ai 0.1.0 into /workspace/builds/worker-1-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-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate next-web-ai 0.1.0 on toolchain beta-2025-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "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" "+beta-2025-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4bdfd6da2cb4f3905419226087a1deeab9c5b842e86da804818982a6fadf2e9e
[INFO] running `Command { std: "docker" "start" "-a" "4bdfd6da2cb4f3905419226087a1deeab9c5b842e86da804818982a6fadf2e9e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4bdfd6da2cb4f3905419226087a1deeab9c5b842e86da804818982a6fadf2e9e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4bdfd6da2cb4f3905419226087a1deeab9c5b842e86da804818982a6fadf2e9e", kill_on_drop: false }`
[INFO] [stdout] 4bdfd6da2cb4f3905419226087a1deeab9c5b842e86da804818982a6fadf2e9e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ab0e9ddcf79f20ef300c83d9a15062ad47382a0335b53e939b20c5f160c11eb3
[INFO] running `Command { std: "docker" "start" "-a" "ab0e9ddcf79f20ef300c83d9a15062ad47382a0335b53e939b20c5f160c11eb3", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling cc v1.2.30
[INFO] [stderr]    Compiling http v1.3.1
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling socket2 v0.6.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling serde_json v1.0.141
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling rustversion v1.0.21
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling anstyle v1.0.11
[INFO] [stderr]    Compiling anstyle-query v1.1.3
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling iri-string v0.7.8
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling clap_lex v0.7.5
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling flate2 v1.1.2
[INFO] [stderr]    Compiling anstream v0.6.19
[INFO] [stderr]    Compiling rustls-pki-types v1.12.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling inventory v0.3.20
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling sys-locale v0.3.2
[INFO] [stderr]    Compiling clap_builder v4.5.42
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling 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 displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling futures-macro v0.3.31
[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]    Compiling tokio v1.47.0
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling zerovec v0.11.2
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling axum-core v0.5.2
[INFO] [stderr]    Compiling clap v4.5.42
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling potential_utf v0.1.2
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]    Compiling tokio-util v0.7.15
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling async-compression v0.4.27
[INFO] [stderr]    Compiling tower-http v0.6.6
[INFO] [stderr]    Compiling hashbrown v0.15.4
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_path_to_error v0.1.17
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling indexmap v2.10.0
[INFO] [stderr]    Compiling validator v0.20.0
[INFO] [stderr]    Compiling h2 v0.4.11
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling hyper v1.6.0
[INFO] [stderr]    Compiling hyper-util v0.1.16
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling axum v0.8.4
[INFO] [stderr]    Compiling reqwest v0.12.22
[INFO] [stderr]    Compiling next-web-core v0.1.4
[INFO] [stderr]    Compiling 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: 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: 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: 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] 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]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 59.90s
[INFO] running `Command { std: "docker" "inspect" "ab0e9ddcf79f20ef300c83d9a15062ad47382a0335b53e939b20c5f160c11eb3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ab0e9ddcf79f20ef300c83d9a15062ad47382a0335b53e939b20c5f160c11eb3", kill_on_drop: false }`
[INFO] [stdout] ab0e9ddcf79f20ef300c83d9a15062ad47382a0335b53e939b20c5f160c11eb3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7b2df62e79d591b24ef306222036f1f3419b2d2020239e506a40042fe07ec3ef
[INFO] running `Command { std: "docker" "start" "-a" "7b2df62e79d591b24ef306222036f1f3419b2d2020239e506a40042fe07ec3ef", kill_on_drop: false }`
[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: 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] [stderr]    Compiling next-web-ai v0.1.0 (/opt/rustwide/workdir)
[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: 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] 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 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: 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: 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] 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]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.86s
[INFO] running `Command { std: "docker" "inspect" "7b2df62e79d591b24ef306222036f1f3419b2d2020239e506a40042fe07ec3ef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7b2df62e79d591b24ef306222036f1f3419b2d2020239e506a40042fe07ec3ef", kill_on_drop: false }`
[INFO] [stdout] 7b2df62e79d591b24ef306222036f1f3419b2d2020239e506a40042fe07ec3ef
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3e9449ecc0e89ac0e0c86d07cd4272e6080123bdb034b66ec47cf479be0263e0
[INFO] running `Command { std: "docker" "start" "-a" "3e9449ecc0e89ac0e0c86d07cd4272e6080123bdb034b66ec47cf479be0263e0", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `model_request::ModelRequest`, `model_response::ModelResponse`, and `model_result::ModelResult`
[INFO] [stderr]  --> src/chat/model/chat_model.rs:6:23
[INFO] [stderr]   |
[INFO] [stderr] 6 |         model::Model, model_request::ModelRequest, model_response::ModelResponse,
[INFO] [stderr]   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 7 |         model_result::ModelResult,
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `model_request::ModelRequest`, `model_response::ModelResponse`, and `model_result::ModelResult`
[INFO] [stderr]  --> src/model/model.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 |     model_request::ModelRequest, model_response::ModelResponse, model_result::ModelResult,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `autoconfigure::context`
[INFO] [stderr]  --> src/observation/observation_handler.rs:1:21
[INFO] [stderr]   |
[INFO] [stderr] 1 | use next_web_core::{autoconfigure::context, DynClone};
[INFO] [stderr]   |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `core::time`
[INFO] [stderr]  --> src/observation/simple_event.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use core::time;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `autoconfigure::context` and `convert::into_box::IntoBox`
[INFO] [stderr]  --> src/observation/simple_observation.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use next_web_core::{autoconfigure::context, convert::into_box::IntoBox};
[INFO] [stderr]   |                     ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/chat/client/default_chat_client.rs:115:13
[INFO] [stderr]     |
[INFO] [stderr] 114 |             response: todo!(),
[INFO] [stderr]     |                       ------- any code following this expression is unreachable
[INFO] [stderr] 115 |             entity,
[INFO] [stderr]     |             ^^^^^^ unreachable expression
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `observation_convention::ObservationConvention`
[INFO] [stderr]   --> src/chat/observation/chat_model_observation_documentation.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 |     observation_convention::ObservationConvention,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `chat::observation::observation_convention::ObservationConvention`
[INFO] [stderr]  --> src/observation/simple_observation.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     chat::observation::observation_convention::ObservationConvention,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Converter`
[INFO] [stderr]   --> src/chat/client/default_chat_client.rs:18:26
[INFO] [stderr]    |
[INFO] [stderr] 18 |     convert::converter::{Converter, StructuredOutputConverter},
[INFO] [stderr]    |                          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `system_message`
[INFO] [stderr]   --> src/ai/deep_seek/deep_seek_chat_model.rs:83:13
[INFO] [stderr]    |
[INFO] [stderr] 83 |         let system_message = system_messages.first();
[INFO] [stderr]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_system_message`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `options`
[INFO] [stderr]    --> src/ai/deep_seek/deep_seek_chat_model.rs:102:21
[INFO] [stderr]     |
[INFO] [stderr] 102 |         if let Some(options) = self.options.as_ref() {}
[INFO] [stderr]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `options`
[INFO] [stderr]    --> src/ai/deep_seek/deep_seek_chat_model.rs:104:21
[INFO] [stderr]     |
[INFO] [stderr] 104 |         if let Some(options) = prompt.options() {}
[INFO] [stderr]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `entity`
[INFO] [stderr]    --> src/chat/client/default_chat_client.rs:112:13
[INFO] [stderr]     |
[INFO] [stderr] 112 |         let entity = output_converter.convert(resp_content);
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key`
[INFO] [stderr]   --> src/chat/meta_data/chat_response_meta_data.rs:24:22
[INFO] [stderr]    |
[INFO] [stderr] 24 |     fn get<T>(&self, key: impl AsRef<str>) -> T {
[INFO] [stderr]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key`
[INFO] [stderr]   --> src/chat/meta_data/chat_response_meta_data.rs:28:33
[INFO] [stderr]    |
[INFO] [stderr] 28 |     fn get_or_default<T>(&self, key: impl AsRef<str>, default: T) -> T {
[INFO] [stderr]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `default`
[INFO] [stderr]   --> src/chat/meta_data/chat_response_meta_data.rs:28:55
[INFO] [stderr]    |
[INFO] [stderr] 28 |     fn get_or_default<T>(&self, key: impl AsRef<str>, default: T) -> T {
[INFO] [stderr]    |                                                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `registry`
[INFO] [stderr]   --> src/chat/observation/chat_model_observation_context.rs:48:9
[INFO] [stderr]    |
[INFO] [stderr] 48 |         registry: &dyn crate::observation::observation_registry::ObservationRegistry,
[INFO] [stderr]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_registry`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key_values`
[INFO] [stderr]   --> src/chat/observation/chat_model_observation_context.rs:54:9
[INFO] [stderr]    |
[INFO] [stderr] 54 |         key_values: crate::util::key_values::KeyValues<Box<dyn crate::util::key_value::KeyValue>>,
[INFO] [stderr]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_values`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `context`
[INFO] [stderr]   --> src/chat/observation/default_chat_model_observation_convention.rs:35:32
[INFO] [stderr]    |
[INFO] [stderr] 35 |     fn supports_context(&self, context: &dyn crate::observation::observation::Context) -> bool {
[INFO] [stderr]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `context`
[INFO] [stderr]   --> src/chat/observation/observation_convention.rs:12:42
[INFO] [stderr]    |
[INFO] [stderr] 12 |     fn low_cardinality_key_values(&self, context: &dyn Context) -> KeyValues<Box<dyn KeyValue>> {
[INFO] [stderr]    |                                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `context`
[INFO] [stderr]   --> src/chat/observation/observation_convention.rs:16:43
[INFO] [stderr]    |
[INFO] [stderr] 16 |     fn high_cardinality_key_values(&self, context: &dyn Context) -> KeyValues<Box<dyn KeyValue>> {
[INFO] [stderr]    |                                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `context`
[INFO] [stderr]   --> src/chat/observation/observation_convention.rs:26:31
[INFO] [stderr]    |
[INFO] [stderr] 26 |     fn contextual_name(&self, context: &dyn Context) -> Option<&str> {
[INFO] [stderr]    |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `contextual_name`
[INFO] [stderr]   --> src/observation/noop_observation.rs:26:35
[INFO] [stderr]    |
[INFO] [stderr] 26 |     fn contextual_name(&mut self, contextual_name: &str) {
[INFO] [stderr]    |                                   ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contextual_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `parent_observation`
[INFO] [stderr]   --> src/observation/noop_observation.rs:30:38
[INFO] [stderr]    |
[INFO] [stderr] 30 |     fn parent_observation(&mut self, parent_observation: Box<dyn Observation>) {
[INFO] [stderr]    |                                      ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_observation`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key_value`
[INFO] [stderr]   --> src/observation/noop_observation.rs:34:45
[INFO] [stderr]    |
[INFO] [stderr] 34 |     fn low_cardinality_key_value(&mut self, key_value: Box<dyn crate::util::key_value::KeyValue>) {
[INFO] [stderr]    |                                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key_value`
[INFO] [stderr]   --> src/observation/noop_observation.rs:38:46
[INFO] [stderr]    |
[INFO] [stderr] 38 |     fn high_cardinality_key_value(&mut self, key_value: Box<dyn crate::util::key_value::KeyValue>) {
[INFO] [stderr]    |                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `observation_convention`
[INFO] [stderr]   --> src/observation/noop_observation.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 44 |         observation_convention: super::observation_documentation::BoxObservationConvention,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_observation_convention`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `error`
[INFO] [stderr]   --> src/observation/noop_observation.rs:49:25
[INFO] [stderr]    |
[INFO] [stderr] 49 |     fn error(&mut self, error: &next_web_core::error::BoxError) {
[INFO] [stderr]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `event`
[INFO] [stderr]   --> src/observation/noop_observation.rs:53:25
[INFO] [stderr]    |
[INFO] [stderr] 53 |     fn event(&mut self, event: Box<dyn super::observation::Event>) {
[INFO] [stderr]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `registry`
[INFO] [stderr]    --> src/observation/observation.rs:171:55
[INFO] [stderr]     |
[INFO] [stderr] 171 |     fn set_parent_from_current_observation(&mut self, registry: &dyn ObservationRegistry) {}
[INFO] [stderr]     |                                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_registry`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]    --> src/observation/observation.rs:173:28
[INFO] [stderr]     |
[INFO] [stderr] 173 |     fn set_name(&mut self, name: &str) {}
[INFO] [stderr]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key_values`
[INFO] [stderr]    --> src/observation/observation.rs:175:50
[INFO] [stderr]     |
[INFO] [stderr] 175 |     fn add_low_cardinality_key_values(&mut self, key_values: KeyValues<Box<dyn KeyValue>>) {}
[INFO] [stderr]     |                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_values`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `contextual_name`
[INFO] [stderr]    --> src/observation/observation.rs:177:39
[INFO] [stderr]     |
[INFO] [stderr] 177 |     fn set_contextual_name(&mut self, contextual_name: &str) {}
[INFO] [stderr]     |                                       ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contextual_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `parent_observation`
[INFO] [stderr]    --> src/observation/simple_observation.rs:146:38
[INFO] [stderr]     |
[INFO] [stderr] 146 |     fn parent_observation(&mut self, parent_observation: Box<dyn Observation>) {
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_observation`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key_value`
[INFO] [stderr]    --> src/observation/simple_observation.rs:150:45
[INFO] [stderr]     |
[INFO] [stderr] 150 |     fn low_cardinality_key_value(&mut self, key_value: Box<dyn crate::util::key_value::KeyValue>) {
[INFO] [stderr]     |                                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key_value`
[INFO] [stderr]    --> src/observation/simple_observation.rs:154:46
[INFO] [stderr]     |
[INFO] [stderr] 154 |     fn high_cardinality_key_value(&mut self, key_value: Box<dyn crate::util::key_value::KeyValue>) {
[INFO] [stderr]     |                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `observation_convention`
[INFO] [stderr]    --> src/observation/simple_observation.rs:158:42
[INFO] [stderr]     |
[INFO] [stderr] 158 |     fn observation_convention(&mut self, observation_convention: BoxObservationConvention) {
[INFO] [stderr]     |                                          ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_observation_convention`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `error`
[INFO] [stderr]    --> src/observation/simple_observation.rs:162:25
[INFO] [stderr]     |
[INFO] [stderr] 162 |     fn error(&mut self, error: &next_web_core::error::BoxError) {
[INFO] [stderr]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `event`
[INFO] [stderr]    --> src/observation/simple_observation.rs:166:25
[INFO] [stderr]     |
[INFO] [stderr] 166 |     fn event(&mut self, event: Box<dyn super::observation::Event>) {
[INFO] [stderr]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stderr] 
[INFO] [stderr] warning: field `chat_model` is never read
[INFO] [stderr]   --> src/ai/deep_seek/api/deep_seek_api.rs:16:16
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct DeepSeekApi {
[INFO] [stderr]    |            ----------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 16 |     pub(crate) chat_model: ChatModel,
[INFO] [stderr]    |                ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DeepSeekApi` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]  --> src/ai/deep_seek/deep_seek_chat_options.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub struct DeepSeekChatOptions {
[INFO] [stderr]   |            ------------------- fields in this struct
[INFO] [stderr] 3 |     model: Box<str>,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 4 |     frequency_penalty: f64,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 5 |     max_tokens: u64,
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr] 6 |     presence_penalty: f64,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 7 |     response_format: Box<str>,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 8 |     stop: Vec<String>,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 9 |     top_p: f64,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `DeepSeekChatOptions` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `chat_model` and `advisors` are never read
[INFO] [stderr]   --> src/chat/client/default_chat_client.rs:60:16
[INFO] [stderr]    |
[INFO] [stderr] 59 | pub struct DefaultChatClientRequestSpec {
[INFO] [stderr]    |            ---------------------------- fields in this struct
[INFO] [stderr] 60 |     pub(crate) chat_model: Box<dyn ChatModel>,
[INFO] [stderr]    |                ^^^^^^^^^^
[INFO] [stderr] 61 |     pub(crate) messages: Vec<Box<dyn Message>>,
[INFO] [stderr] 62 |     pub(crate) advisors: Vec<Box<dyn Advisor>>,
[INFO] [stderr]    |                ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DefaultChatClientRequestSpec` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `request` is never read
[INFO] [stderr]    --> src/chat/client/default_chat_client.rs:103:16
[INFO] [stderr]     |
[INFO] [stderr] 102 | pub struct DefaultCallResponseSpec {
[INFO] [stderr]     |            ----------------------- field in this struct
[INFO] [stderr] 103 |     pub(crate) request: DefaultChatClientRequestSpec,
[INFO] [stderr]     |                ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `do_response_entity` is never used
[INFO] [stderr]    --> src/chat/client/default_chat_client.rs:107:8
[INFO] [stderr]     |
[INFO] [stderr] 106 | impl DefaultCallResponseSpec {
[INFO] [stderr]     | ---------------------------- method in this implementation
[INFO] [stderr] 107 |     fn do_response_entity<T, C>(&self, output_converter: C) -> ResponseEntity<ChatResponse, T>
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `request` is never read
[INFO] [stderr]    --> src/chat/client/default_chat_client.rs:145:5
[INFO] [stderr]     |
[INFO] [stderr] 144 | pub struct DefaultStreamResponseSpec {
[INFO] [stderr]     |            ------------------------- field in this struct
[INFO] [stderr] 145 |     request: DefaultChatClientRequestSpec,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `metadata`, `finish_reason`, and `content_filters` are never read
[INFO] [stderr]   --> src/chat/meta_data/default_chat_generation_metadata.rs:10:16
[INFO] [stderr]    |
[INFO] [stderr]  9 | pub struct DefaultChatGenerationMetadata {
[INFO] [stderr]    |            ----------------------------- fields in this struct
[INFO] [stderr] 10 |     pub(crate) metadata: Option<HashMap<String, String>>,
[INFO] [stderr]    |                ^^^^^^^^
[INFO] [stderr] 11 |     pub(crate) finish_reason: Option<String>,
[INFO] [stderr]    |                ^^^^^^^^^^^^^
[INFO] [stderr] 12 |     pub(crate) content_filters: Option<HashSet<Box<str>>>,
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DefaultChatGenerationMetadata` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `request_model_none` and `response_model_name` are never read
[INFO] [stderr]   --> src/chat/observation/default_chat_model_observation_convention.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct DefaultChatModelObservationConvention {
[INFO] [stderr]    |            ------------------------------------- fields in this struct
[INFO] [stderr] 16 |     request_model_none: Box<dyn KeyValue>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 17 |     response_model_name: Box<dyn KeyValue>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DefaultChatModelObservationConvention` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `low_cardinality_key_values` and `high_cardinality_key_values` are never read
[INFO] [stderr]   --> src/chat/observation/model_observation_context.rs:20:16
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct ModelObservationContext<Q, R> {
[INFO] [stderr]    |            ----------------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 20 |     pub(crate) low_cardinality_key_values: BTreeMap<String, Box<dyn KeyValue>>,
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 21 |     pub(crate) high_cardinality_key_values: BTreeMap<String, Box<dyn KeyValue>>,
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ModelObservationContext` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `messages` is never read
[INFO] [stderr]   --> src/chat/prompt/prompt.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct Prompt {
[INFO] [stderr]    |            ------ field in this struct
[INFO] [stderr] 13 |     messages: Vec<Box<dyn Message>>,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Prompt` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `observation_config` is never read
[INFO] [stderr]  --> src/observation/noop_observation_registry.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct NoopObservationRegistry {
[INFO] [stderr]   |            ----------------------- field in this struct
[INFO] [stderr] 5 |     observation_config: Option<ObservationConfig>,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `NoopObservationRegistry` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `contextual_name` and `wall_time` are never read
[INFO] [stderr]  --> src/observation/simple_event.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct SimpleEvent {
[INFO] [stderr]   |            ----------- fields in this struct
[INFO] [stderr] 6 |     name: String,
[INFO] [stderr] 7 |     contextual_name: String,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 8 |     wall_time: u64,
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `registry` is never read
[INFO] [stderr]   --> src/observation/simple_observation.rs:19:16
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub struct SimpleObservation {
[INFO] [stderr]    |            ----------------- field in this struct
[INFO] [stderr] 18 |     pub(crate) context: Box<dyn Context>,
[INFO] [stderr] 19 |     pub(crate) registry: Box<dyn ObservationRegistry>,
[INFO] [stderr]    |                ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `next-web-ai` (lib) generated 52 warnings (run `cargo fix --lib -p next-web-ai` to apply 35 suggestions)
[INFO] [stderr] warning: `next-web-ai` (lib test) generated 52 warnings (52 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.52s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/next_web_ai-b91ab6289059ca59)
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests next_web_ai
[INFO] [stdout] running 1 test
[INFO] [stdout] test tests::ai_tests::test_show ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3e9449ecc0e89ac0e0c86d07cd4272e6080123bdb034b66ec47cf479be0263e0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3e9449ecc0e89ac0e0c86d07cd4272e6080123bdb034b66ec47cf479be0263e0", kill_on_drop: false }`
[INFO] [stdout] 3e9449ecc0e89ac0e0c86d07cd4272e6080123bdb034b66ec47cf479be0263e0
