[INFO] cloning repository https://github.com/mazhewitt/RustyMailBot
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mazhewitt/RustyMailBot" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmazhewitt%2FRustyMailBot", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmazhewitt%2FRustyMailBot'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 14cf9fbd5667df5d832d2027ee748bf9b73de686
[INFO] testing mazhewitt/RustyMailBot against 1.99.0-beta.1+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmazhewitt%2FRustyMailBot" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mazhewitt/RustyMailBot
[INFO] finished tweaking git repo https://github.com/mazhewitt/RustyMailBot
[INFO] tweaked toml for git repo https://github.com/mazhewitt/RustyMailBot written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mazhewitt/RustyMailBot on toolchain 1.99.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mazhewitt/RustyMailBot 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" "+1.99.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] faed2996365b501f3bf3a17cef17c31c253256b5c7ff37a3eeb5015e4f051b3d
[INFO] running `Command { std: "docker" "start" "faed2996365b501f3bf3a17cef17c31c253256b5c7ff37a3eeb5015e4f051b3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "faed2996365b501f3bf3a17cef17c31c253256b5c7ff37a3eeb5015e4f051b3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "faed2996365b501f3bf3a17cef17c31c253256b5c7ff37a3eeb5015e4f051b3d" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "faed2996365b501f3bf3a17cef17c31c253256b5c7ff37a3eeb5015e4f051b3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "faed2996365b501f3bf3a17cef17c31c253256b5c7ff37a3eeb5015e4f051b3d" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling unicode-ident v1.0.16
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling smallvec v1.14.0
[INFO] [stderr]    Compiling log v0.4.25
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling bytes v1.10.0
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling itoa v1.0.14
[INFO] [stderr]    Compiling once_cell v1.20.3
[INFO] [stderr]    Compiling serde v1.0.217
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling cc v1.2.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling socket2 v0.5.8
[INFO] [stderr]    Compiling mio v1.0.3
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling tracing-core v0.1.33
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling hashbrown v0.15.2
[INFO] [stderr]    Compiling httparse v1.10.0
[INFO] [stderr]    Compiling litemap v0.7.4
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling writeable v0.5.5
[INFO] [stderr]    Compiling bitflags v2.8.0
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling indexmap v2.7.1
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling ring v0.17.9
[INFO] [stderr]    Compiling openssl-sys v0.9.106
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.0
[INFO] [stderr]    Compiling icu_properties_data v1.5.0
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling write16 v1.0.0
[INFO] [stderr]    Compiling ryu v1.0.19
[INFO] [stderr]    Compiling serde_json v1.0.138
[INFO] [stderr]    Compiling utf16_iter v1.0.5
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.0
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]    Compiling openssl v0.10.71
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling http v1.2.0
[INFO] [stderr]    Compiling native-tls v0.2.13
[INFO] [stderr]    Compiling zstd-sys v2.0.13+zstd.1.5.6
[INFO] [stderr]    Compiling rustls-pki-types v1.11.0
[INFO] [stderr]    Compiling siphasher v1.0.1
[INFO] [stderr]    Compiling siphasher v0.3.11
[INFO] [stderr]    Compiling openssl-probe v0.1.6
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling phf_shared v0.10.0
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling local-waker v0.1.4
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling time-core v0.1.2
[INFO] [stderr]    Compiling zstd-safe v7.2.1
[INFO] [stderr]    Compiling rustls v0.23.23
[INFO] [stderr]    Compiling opaque-debug v0.3.1
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling time-macros v0.2.19
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling mac v0.1.1
[INFO] [stderr]    Compiling adler2 v2.0.0
[INFO] [stderr]    Compiling serde_derive v1.0.217
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling tokio v1.43.0
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling zerofrom-derive v0.1.5
[INFO] [stderr]    Compiling zerofrom v0.1.5
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling tokio-util v0.7.13
[INFO] [stderr]    Compiling yoke v0.7.5
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling zerovec v0.10.4
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling tinystr v0.7.6
[INFO] [stderr]    Compiling icu_locid v1.5.0
[INFO] [stderr]    Compiling icu_collections v1.5.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling icu_provider v1.5.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling icu_locid_transform v1.5.0
[INFO] [stderr]    Compiling h2 v0.3.26
[INFO] [stderr]    Compiling icu_properties v1.5.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling phf_generator v0.10.0
[INFO] [stderr]    Compiling h2 v0.4.8
[INFO] [stderr]    Compiling phf_codegen v0.10.0
[INFO] [stderr]    Compiling string_cache_codegen v0.5.4
[INFO] [stderr]    Compiling icu_normalizer v1.5.0
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling rustls-webpki v0.102.8
[INFO] [stderr]    Compiling deranged v0.3.11
[INFO] [stderr]    Compiling idna_adapter v1.2.0
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]    Compiling time v0.3.37
[INFO] [stderr]    Compiling bytestring v1.4.0
[INFO] [stderr]    Compiling markup5ever v0.11.0
[INFO] [stderr]    Compiling rustls-webpki v0.101.7
[INFO] [stderr]    Compiling sct v0.7.1
[INFO] [stderr]    Compiling actix-rt v2.10.0
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling hyper v1.6.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.4
[INFO] [stderr]    Compiling hyper-util v0.1.10
[INFO] [stderr]    Compiling futf v0.1.5
[INFO] [stderr]    Compiling actix-service v2.0.2
[INFO] [stderr]    Compiling brotli-decompressor v4.0.2
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling actix-utils v3.0.1
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling sha2 v0.10.8
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling cookie v0.16.2
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling regex-lite v0.1.6
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]    Compiling convert_case v0.4.0
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling derive_more v0.99.19
[INFO] [stderr]    Compiling actix-router v0.5.3
[INFO] [stderr]    Compiling string_cache v0.8.9
[INFO] [stderr]    Compiling tendril v0.4.3
[INFO] [stderr]    Compiling flate2 v1.0.35
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling brotli v6.0.0
[INFO] [stderr]    Compiling phf v0.10.1
[INFO] [stderr]    Compiling tokio-rustls v0.26.2
[INFO] [stderr]    Compiling http-body-util v0.1.2
[INFO] [stderr]    Compiling actix-codec v0.5.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling local-channel v0.1.5
[INFO] [stderr]    Compiling webpki-roots v0.26.8
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling getrandom v0.3.1
[INFO] [stderr]    Compiling base64 v0.20.0
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]    Compiling language-tags v0.3.2
[INFO] [stderr]    Compiling tokio-rustls v0.24.1
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling html5ever v0.26.0
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling hyper-rustls v0.27.5
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]    Compiling actix-server v2.5.0
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]    Compiling structmeta-derive v0.3.0
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling v_htmlescape v0.15.8
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling impl-more v0.1.9
[INFO] [stderr]    Compiling schemars v0.8.21
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling thiserror v2.0.11
[INFO] [stderr]    Compiling anyhow v1.0.96
[INFO] [stderr]    Compiling schemars_derive v0.8.21
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]    Compiling rustls-pemfile v1.0.4
[INFO] [stderr]    Compiling structmeta v0.3.0
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling reqwest v0.12.12
[INFO] [stderr]    Compiling hyper-rustls v0.24.2
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.11
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling sync_wrapper v0.1.2
[INFO] [stderr]    Compiling webpki-roots v0.25.4
[INFO] [stderr]    Compiling dyn-clone v1.0.18
[INFO] [stderr]    Compiling iana-time-zone v0.1.61
[INFO] [stderr]    Compiling derive_more v1.0.0
[INFO] [stderr]    Compiling chrono v0.4.39
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling iso8601 v0.6.2
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling uuid v1.14.0
[INFO] [stderr]    Compiling meilisearch-index-setting-macro v0.28.0
[INFO] [stderr]    Compiling xml5ever v0.17.0
[INFO] [stderr]    Compiling yaup v0.3.1
[INFO] [stderr]    Compiling jsonwebtoken v9.3.1
[INFO] [stderr]    Compiling either v1.14.0
[INFO] [stderr]    Compiling serde_path_to_error v0.1.16
[INFO] [stderr]    Compiling async-trait v0.1.86
[INFO] [stderr]    Compiling is-terminal v0.4.15
[INFO] [stderr]    Compiling http-range v0.1.5
[INFO] [stderr]    Compiling humantime v2.1.0
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling ollama-rs v0.2.5
[INFO] [stderr]    Compiling oauth2 v4.4.2
[INFO] [stderr]    Compiling env_logger v0.10.2
[INFO] [stderr]    Compiling html2text v0.6.0
[INFO] [stderr]    Compiling meilisearch-sdk v0.28.0
[INFO] [stderr]    Compiling dotenv v0.15.0
[INFO] [stderr]    Compiling zstd v0.13.2
[INFO] [stderr]    Compiling actix-http v3.9.0
[INFO] [stderr]    Compiling actix-web v4.9.0
[INFO] [stderr]    Compiling actix-files v0.6.6
[INFO] [stderr]    Compiling actix-session v0.10.1
[INFO] [stderr]    Compiling AdukiChatAgent v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/models/email_db.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{error};
[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 variable: `date`
[INFO] [stdout]    --> src/models/email_db.rs:346:25
[INFO] [stdout]     |
[INFO] [stdout] 346 |                     let date = email.date.as_ref().unwrap_or(&"".to_string()).clone();
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_date`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `refine_query_with_intent` is never used
[INFO] [stdout]   --> src/models/email_query.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn refine_query_with_intent(query: &str, analysis: QueryCriteria, intent: Intent) -> QueryCriteria {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_date_string` is never used
[INFO] [stdout]    --> src/models/email_query.rs:187:4
[INFO] [stdout]     |
[INFO] [stdout] 187 | fn parse_date_string(date_str: &str) -> Option<DateTime<Utc>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_pattern` is never used
[INFO] [stdout]    --> src/models/email_query.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn extract_pattern(text: &str, pattern: &str) -> Option<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_date_queries` is never used
[INFO] [stdout]    --> src/models/email_query.rs:240:4
[INFO] [stdout]     |
[INFO] [stdout] 240 | fn process_date_queries(query: &str, criteria: &mut QueryCriteria) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_keywords` is never used
[INFO] [stdout]    --> src/models/email_query.rs:312:4
[INFO] [stdout]     |
[INFO] [stdout] 312 | fn extract_keywords(text: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fix_json_if_needed` is never used
[INFO] [stdout]    --> src/models/email_query.rs:329:4
[INFO] [stdout]     |
[INFO] [stdout] 329 | fn fix_json_if_needed(json: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate `AdukiChatAgent` should have a snake case name
[INFO] [stdout]   |
[INFO] [stdout]   = help: convert the identifier to snake case: `aduki_chat_agent`
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/models/email_db.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{error};
[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 variable: `date`
[INFO] [stdout]    --> src/models/email_db.rs:346:25
[INFO] [stdout]     |
[INFO] [stdout] 346 |                     let date = email.date.as_ref().unwrap_or(&"".to_string()).clone();
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_date`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `INIT` is never used
[INFO] [stdout]  --> src/config.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | static INIT: Once = Once::new();
[INFO] [stdout]   |        ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup` is never used
[INFO] [stdout]   --> src/config.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn setup() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `meilisearch_search_key` is never read
[INFO] [stdout]   --> src/config.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct Config {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 50 |     pub meilisearch_url: String,
[INFO] [stdout] 51 |     pub meilisearch_search_key: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `store_email`, `delete_email`, and `get_all_emails` are never used
[INFO] [stdout]    --> src/models/email_db.rs:139:18
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl EmailDB {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub async fn store_email(&self, email: &Email) -> Result<(), EmailDBError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub async fn delete_email(&self, message_id: &str) -> Result<(), EmailDBError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub async fn get_all_emails(&self) -> Result<Vec<Email>, EmailDBError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `refine_query_with_intent` is never used
[INFO] [stdout]   --> src/models/email_query.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn refine_query_with_intent(query: &str, analysis: QueryCriteria, intent: Intent) -> QueryCriteria {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_date_string` is never used
[INFO] [stdout]    --> src/models/email_query.rs:187:4
[INFO] [stdout]     |
[INFO] [stdout] 187 | fn parse_date_string(date_str: &str) -> Option<DateTime<Utc>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_pattern` is never used
[INFO] [stdout]    --> src/models/email_query.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn extract_pattern(text: &str, pattern: &str) -> Option<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_date_queries` is never used
[INFO] [stdout]    --> src/models/email_query.rs:240:4
[INFO] [stdout]     |
[INFO] [stdout] 240 | fn process_date_queries(query: &str, criteria: &mut QueryCriteria) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_keywords` is never used
[INFO] [stdout]    --> src/models/email_query.rs:312:4
[INFO] [stdout]     |
[INFO] [stdout] 312 | fn extract_keywords(text: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fix_json_if_needed` is never used
[INFO] [stdout]    --> src/models/email_query.rs:329:4
[INFO] [stdout]     |
[INFO] [stdout] 329 | fn fix_json_if_needed(json: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Message` is never constructed
[INFO] [stdout]   --> src/services/gmail_service.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Message {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MessagePayload` is never constructed
[INFO] [stdout]   --> src/services/gmail_service.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct MessagePayload {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Header` is never constructed
[INFO] [stdout]   --> src/services/gmail_service.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct Header {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MessageBody` is never constructed
[INFO] [stdout]   --> src/services/gmail_service.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct MessageBody {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 9m 46s
[INFO] running `Command { std: "docker" "inspect" "faed2996365b501f3bf3a17cef17c31c253256b5c7ff37a3eeb5015e4f051b3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "faed2996365b501f3bf3a17cef17c31c253256b5c7ff37a3eeb5015e4f051b3d" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.43.0
[INFO] [stderr]    Compiling predicates-core v1.0.9
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling float-cmp v0.9.0
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling mockall_derive v0.11.4
[INFO] [stderr]    Compiling downcast v0.11.0
[INFO] [stderr]    Compiling fragile v2.0.0
[INFO] [stderr]    Compiling predicates-tree v1.0.12
[INFO] [stderr]    Compiling predicates v2.1.5
[INFO] [stderr]    Compiling mockall v0.11.4
[INFO] [stderr]    Compiling tokio-util v0.7.13
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling actix-rt v2.10.0
[INFO] [stderr]    Compiling tokio-rustls v0.26.2
[INFO] [stderr]    Compiling tokio-rustls v0.24.1
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling actix-server v2.5.0
[INFO] [stderr]    Compiling h2 v0.3.26
[INFO] [stderr]    Compiling h2 v0.4.8
[INFO] [stderr]    Compiling actix-codec v0.5.2
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling actix-http v3.9.0
[INFO] [stderr]    Compiling hyper v1.6.0
[INFO] [stderr]    Compiling hyper-util v0.1.10
[INFO] [stderr]    Compiling actix-web v4.9.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.5
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.12
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling hyper-rustls v0.24.2
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling oauth2 v4.4.2
[INFO] [stderr]    Compiling meilisearch-sdk v0.28.0
[INFO] [stderr]    Compiling actix-files v0.6.6
[INFO] [stderr]    Compiling actix-session v0.10.1
[INFO] [stderr]    Compiling ollama-rs v0.2.5
[INFO] [stderr]    Compiling AdukiChatAgent v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/models/email_db.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{error};
[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 variable: `date`
[INFO] [stdout]    --> src/models/email_db.rs:346:25
[INFO] [stdout]     |
[INFO] [stdout] 346 |                     let date = email.date.as_ref().unwrap_or(&"".to_string()).clone();
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_date`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `refine_query_with_intent` is never used
[INFO] [stdout]   --> src/models/email_query.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn refine_query_with_intent(query: &str, analysis: QueryCriteria, intent: Intent) -> QueryCriteria {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_date_string` is never used
[INFO] [stdout]    --> src/models/email_query.rs:187:4
[INFO] [stdout]     |
[INFO] [stdout] 187 | fn parse_date_string(date_str: &str) -> Option<DateTime<Utc>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_pattern` is never used
[INFO] [stdout]    --> src/models/email_query.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn extract_pattern(text: &str, pattern: &str) -> Option<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_date_queries` is never used
[INFO] [stdout]    --> src/models/email_query.rs:240:4
[INFO] [stdout]     |
[INFO] [stdout] 240 | fn process_date_queries(query: &str, criteria: &mut QueryCriteria) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_keywords` is never used
[INFO] [stdout]    --> src/models/email_query.rs:312:4
[INFO] [stdout]     |
[INFO] [stdout] 312 | fn extract_keywords(text: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fix_json_if_needed` is never used
[INFO] [stdout]    --> src/models/email_query.rs:329:4
[INFO] [stdout]     |
[INFO] [stdout] 329 | fn fix_json_if_needed(json: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate `AdukiChatAgent` should have a snake case name
[INFO] [stdout]   |
[INFO] [stdout]   = help: convert the identifier to snake case: `aduki_chat_agent`
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/models/email_db.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{error};
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::email::Email`
[INFO] [stdout]    --> src/services/chat_service.rs:555:9
[INFO] [stdout]     |
[INFO] [stdout] 555 |     use crate::models::email::Email;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::user_session::UserSession`
[INFO] [stdout]    --> src/services/chat_service.rs:556:9
[INFO] [stdout]     |
[INFO] [stdout] 556 |     use crate::models::user_session::UserSession;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::email_db::EmailDBError`
[INFO] [stdout]    --> src/services/chat_service.rs:557:9
[INFO] [stdout]     |
[INFO] [stdout] 557 |     use crate::models::email_db::EmailDBError;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mockall::predicate::*`
[INFO] [stdout]    --> src/services/chat_service.rs:559:9
[INFO] [stdout]     |
[INFO] [stdout] 559 |     use mockall::predicate::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mockall::mock`
[INFO] [stdout]    --> src/services/chat_service.rs:560:9
[INFO] [stdout]     |
[INFO] [stdout] 560 |     use mockall::mock;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> tests/db/email_db_tests.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::sleep`
[INFO] [stdout]  --> tests/db/email_db_tests.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tokio::time::sleep;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EmailDBError`
[INFO] [stdout]  --> tests/db/email_db_tests.rs:7:49
[INFO] [stdout]   |
[INFO] [stdout] 7 | use AdukiChatAgent::models::email_db::{EmailDB, EmailDBError};
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EmailDBError`
[INFO] [stdout]  --> tests/db/email_operations_tests.rs:4:49
[INFO] [stdout]   |
[INFO] [stdout] 4 | use AdukiChatAgent::models::email_db::{EmailDB, EmailDBError};
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::setup_test_db_all`
[INFO] [stdout]  --> tests/db/email_operations_tests.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::setup_test_db_all;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `classify_intent`
[INFO] [stdout]  --> tests/chat/chat_service_tests.rs:4:46
[INFO] [stdout]   |
[INFO] [stdout] 4 | use AdukiChatAgent::services::chat_service::{classify_intent, process_chat};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/models/email_db.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{error};
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/models/email_db.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{error};
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::email::Email`
[INFO] [stdout]    --> src/services/chat_service.rs:555:9
[INFO] [stdout]     |
[INFO] [stdout] 555 |     use crate::models::email::Email;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::user_session::UserSession`
[INFO] [stdout]    --> src/services/chat_service.rs:556:9
[INFO] [stdout]     |
[INFO] [stdout] 556 |     use crate::models::user_session::UserSession;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::email_db::EmailDBError`
[INFO] [stdout]    --> src/services/chat_service.rs:557:9
[INFO] [stdout]     |
[INFO] [stdout] 557 |     use crate::models::email_db::EmailDBError;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mockall::predicate::*`
[INFO] [stdout]    --> src/services/chat_service.rs:559:9
[INFO] [stdout]     |
[INFO] [stdout] 559 |     use mockall::predicate::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mockall::mock`
[INFO] [stdout]    --> src/services/chat_service.rs:560:9
[INFO] [stdout]     |
[INFO] [stdout] 560 |     use mockall::mock;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `date`
[INFO] [stdout]    --> src/models/email_db.rs:346:25
[INFO] [stdout]     |
[INFO] [stdout] 346 |                     let date = email.date.as_ref().unwrap_or(&"".to_string()).clone();
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_date`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/chat/email_explanation_tests.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut email_db = EmailDB::default().await?;
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/chat/email_explanation_tests.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |     let mut email_db = EmailDB::default().await?;
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_test_db_all` is never used
[INFO] [stdout]   --> tests/db/mod.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn setup_test_db_all() -> Result<EmailDB, EmailDBError> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_date_string` is never used
[INFO] [stdout]    --> src/models/email_query.rs:187:4
[INFO] [stdout]     |
[INFO] [stdout] 187 | fn parse_date_string(date_str: &str) -> Option<DateTime<Utc>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_date_queries` is never used
[INFO] [stdout]    --> src/models/email_query.rs:240:4
[INFO] [stdout]     |
[INFO] [stdout] 240 | fn process_date_queries(query: &str, criteria: &mut QueryCriteria) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_keywords` is never used
[INFO] [stdout]    --> src/models/email_query.rs:312:4
[INFO] [stdout]     |
[INFO] [stdout] 312 | fn extract_keywords(text: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fix_json_if_needed` is never used
[INFO] [stdout]    --> src/models/email_query.rs:329:4
[INFO] [stdout]     |
[INFO] [stdout] 329 | fn fix_json_if_needed(json: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `date`
[INFO] [stdout]    --> src/models/email_db.rs:346:25
[INFO] [stdout]     |
[INFO] [stdout] 346 |                     let date = email.date.as_ref().unwrap_or(&"".to_string()).clone();
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_date`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `INIT` is never used
[INFO] [stdout]  --> src/config.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | static INIT: Once = Once::new();
[INFO] [stdout]   |        ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup` is never used
[INFO] [stdout]   --> src/config.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn setup() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `meilisearch_search_key` is never read
[INFO] [stdout]   --> src/config.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct Config {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 50 |     pub meilisearch_url: String,
[INFO] [stdout] 51 |     pub meilisearch_search_key: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `store_email`, `delete_email`, and `get_all_emails` are never used
[INFO] [stdout]    --> src/models/email_db.rs:139:18
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl EmailDB {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub async fn store_email(&self, email: &Email) -> Result<(), EmailDBError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub async fn delete_email(&self, message_id: &str) -> Result<(), EmailDBError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub async fn get_all_emails(&self) -> Result<Vec<Email>, EmailDBError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `refine_query_with_intent` is never used
[INFO] [stdout]   --> src/models/email_query.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn refine_query_with_intent(query: &str, analysis: QueryCriteria, intent: Intent) -> QueryCriteria {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_date_string` is never used
[INFO] [stdout]    --> src/models/email_query.rs:187:4
[INFO] [stdout]     |
[INFO] [stdout] 187 | fn parse_date_string(date_str: &str) -> Option<DateTime<Utc>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_pattern` is never used
[INFO] [stdout]    --> src/models/email_query.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn extract_pattern(text: &str, pattern: &str) -> Option<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_date_queries` is never used
[INFO] [stdout]    --> src/models/email_query.rs:240:4
[INFO] [stdout]     |
[INFO] [stdout] 240 | fn process_date_queries(query: &str, criteria: &mut QueryCriteria) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_keywords` is never used
[INFO] [stdout]    --> src/models/email_query.rs:312:4
[INFO] [stdout]     |
[INFO] [stdout] 312 | fn extract_keywords(text: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fix_json_if_needed` is never used
[INFO] [stdout]    --> src/models/email_query.rs:329:4
[INFO] [stdout]     |
[INFO] [stdout] 329 | fn fix_json_if_needed(json: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Message` is never constructed
[INFO] [stdout]   --> src/services/gmail_service.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Message {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MessagePayload` is never constructed
[INFO] [stdout]   --> src/services/gmail_service.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct MessagePayload {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Header` is never constructed
[INFO] [stdout]   --> src/services/gmail_service.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct Header {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MessageBody` is never constructed
[INFO] [stdout]   --> src/services/gmail_service.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct MessageBody {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `date`
[INFO] [stdout]    --> src/models/email_db.rs:346:25
[INFO] [stdout]     |
[INFO] [stdout] 346 |                     let date = email.date.as_ref().unwrap_or(&"".to_string()).clone();
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_date`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `EmailDBInterface` is never used
[INFO] [stdout]   --> src/models/email_db.rs:41:11
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub trait EmailDBInterface {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `store_email` and `delete_email` are never used
[INFO] [stdout]    --> src/models/email_db.rs:139:18
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl EmailDB {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub async fn store_email(&self, email: &Email) -> Result<(), EmailDBError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub async fn delete_email(&self, message_id: &str) -> Result<(), EmailDBError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_date_string` is never used
[INFO] [stdout]    --> src/models/email_query.rs:187:4
[INFO] [stdout]     |
[INFO] [stdout] 187 | fn parse_date_string(date_str: &str) -> Option<DateTime<Utc>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_date_queries` is never used
[INFO] [stdout]    --> src/models/email_query.rs:240:4
[INFO] [stdout]     |
[INFO] [stdout] 240 | fn process_date_queries(query: &str, criteria: &mut QueryCriteria) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_keywords` is never used
[INFO] [stdout]    --> src/models/email_query.rs:312:4
[INFO] [stdout]     |
[INFO] [stdout] 312 | fn extract_keywords(text: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fix_json_if_needed` is never used
[INFO] [stdout]    --> src/models/email_query.rs:329:4
[INFO] [stdout]     |
[INFO] [stdout] 329 | fn fix_json_if_needed(json: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Message` is never constructed
[INFO] [stdout]   --> src/services/gmail_service.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Message {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MessagePayload` is never constructed
[INFO] [stdout]   --> src/services/gmail_service.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct MessagePayload {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Header` is never constructed
[INFO] [stdout]   --> src/services/gmail_service.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct Header {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MessageBody` is never constructed
[INFO] [stdout]   --> src/services/gmail_service.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct MessageBody {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 5m 02s
[INFO] running `Command { std: "docker" "inspect" "faed2996365b501f3bf3a17cef17c31c253256b5c7ff37a3eeb5015e4f051b3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "faed2996365b501f3bf3a17cef17c31c253256b5c7ff37a3eeb5015e4f051b3d" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `error`
[INFO] [stderr]  --> src/models/email_db.rs:5:11
[INFO] [stderr]   |
[INFO] [stderr] 5 | use log::{error};
[INFO] [stderr]   |           ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `date`
[INFO] [stderr]    --> src/models/email_db.rs:346:25
[INFO] [stderr]     |
[INFO] [stderr] 346 |                     let date = email.date.as_ref().unwrap_or(&"".to_string()).clone();
[INFO] [stderr]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_date`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `refine_query_with_intent` is never used
[INFO] [stderr]   --> src/models/email_query.rs:77:4
[INFO] [stderr]    |
[INFO] [stderr] 77 | fn refine_query_with_intent(query: &str, analysis: QueryCriteria, intent: Intent) -> QueryCriteria {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_date_string` is never used
[INFO] [stderr]    --> src/models/email_query.rs:187:4
[INFO] [stderr]     |
[INFO] [stderr] 187 | fn parse_date_string(date_str: &str) -> Option<DateTime<Utc>> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `extract_pattern` is never used
[INFO] [stderr]    --> src/models/email_query.rs:235:4
[INFO] [stderr]     |
[INFO] [stderr] 235 | fn extract_pattern(text: &str, pattern: &str) -> Option<String> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `process_date_queries` is never used
[INFO] [stderr]    --> src/models/email_query.rs:240:4
[INFO] [stderr]     |
[INFO] [stderr] 240 | fn process_date_queries(query: &str, criteria: &mut QueryCriteria) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `extract_keywords` is never used
[INFO] [stderr]    --> src/models/email_query.rs:312:4
[INFO] [stderr]     |
[INFO] [stderr] 312 | fn extract_keywords(text: &str) -> Vec<String> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `fix_json_if_needed` is never used
[INFO] [stderr]    --> src/models/email_query.rs:329:4
[INFO] [stderr]     |
[INFO] [stderr] 329 | fn fix_json_if_needed(json: &str) -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: crate `AdukiChatAgent` should have a snake case name
[INFO] [stderr]   |
[INFO] [stderr]   = help: convert the identifier to snake case: `aduki_chat_agent`
[INFO] [stderr]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `AdukiChatAgent` (lib) generated 9 warnings (run `cargo fix --lib -p AdukiChatAgent` to apply 2 suggestions)
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> tests/db/email_db_tests.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio::time::sleep`
[INFO] [stderr]  --> tests/db/email_db_tests.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use tokio::time::sleep;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EmailDBError`
[INFO] [stderr]  --> tests/db/email_db_tests.rs:7:49
[INFO] [stderr]   |
[INFO] [stderr] 7 | use AdukiChatAgent::models::email_db::{EmailDB, EmailDBError};
[INFO] [stderr]   |                                                 ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EmailDBError`
[INFO] [stderr]  --> tests/db/email_operations_tests.rs:4:49
[INFO] [stderr]   |
[INFO] [stderr] 4 | use AdukiChatAgent::models::email_db::{EmailDB, EmailDBError};
[INFO] [stderr]   |                                                 ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::setup_test_db_all`
[INFO] [stderr]  --> tests/db/email_operations_tests.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use super::setup_test_db_all;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `classify_intent`
[INFO] [stderr]  --> tests/chat/chat_service_tests.rs:4:46
[INFO] [stderr]   |
[INFO] [stderr] 4 | use AdukiChatAgent::services::chat_service::{classify_intent, process_chat};
[INFO] [stderr]   |                                              ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/chat/email_explanation_tests.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let mut email_db = EmailDB::default().await?;
[INFO] [stderr]    |         ----^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/chat/email_explanation_tests.rs:163:9
[INFO] [stderr]     |
[INFO] [stderr] 163 |     let mut email_db = EmailDB::default().await?;
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: function `setup_test_db_all` is never used
[INFO] [stderr]   --> tests/db/mod.rs:10:14
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub async fn setup_test_db_all() -> Result<EmailDB, EmailDBError> {
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::models::email::Email`
[INFO] [stderr]    --> src/services/chat_service.rs:555:9
[INFO] [stderr]     |
[INFO] [stderr] 555 |     use crate::models::email::Email;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::models::user_session::UserSession`
[INFO] [stderr]    --> src/services/chat_service.rs:556:9
[INFO] [stderr]     |
[INFO] [stderr] 556 |     use crate::models::user_session::UserSession;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::models::email_db::EmailDBError`
[INFO] [stderr]    --> src/services/chat_service.rs:557:9
[INFO] [stderr]     |
[INFO] [stderr] 557 |     use crate::models::email_db::EmailDBError;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `mockall::predicate::*`
[INFO] [stderr]    --> src/services/chat_service.rs:559:9
[INFO] [stderr]     |
[INFO] [stderr] 559 |     use mockall::predicate::*;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `mockall::mock`
[INFO] [stderr]    --> src/services/chat_service.rs:560:9
[INFO] [stderr]     |
[INFO] [stderr] 560 |     use mockall::mock;
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `EmailDBInterface` is never used
[INFO] [stderr]   --> src/models/email_db.rs:41:11
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub trait EmailDBInterface {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `store_email` and `delete_email` are never used
[INFO] [stderr]    --> src/models/email_db.rs:139:18
[INFO] [stderr]     |
[INFO] [stderr]  84 | impl EmailDB {
[INFO] [stderr]     | ------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 139 |     pub async fn store_email(&self, email: &Email) -> Result<(), EmailDBError> {
[INFO] [stderr]     |                  ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 147 |     pub async fn delete_email(&self, message_id: &str) -> Result<(), EmailDBError> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Message` is never constructed
[INFO] [stderr]   --> src/services/gmail_service.rs:24:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub struct Message {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MessagePayload` is never constructed
[INFO] [stderr]   --> src/services/gmail_service.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub struct MessagePayload {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Header` is never constructed
[INFO] [stderr]   --> src/services/gmail_service.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub struct Header {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MessageBody` is never constructed
[INFO] [stderr]   --> src/services/gmail_service.rs:45:12
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub struct MessageBody {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `INIT` is never used
[INFO] [stderr]  --> src/config.rs:9:8
[INFO] [stderr]   |
[INFO] [stderr] 9 | static INIT: Once = Once::new();
[INFO] [stderr]   |        ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `setup` is never used
[INFO] [stderr]   --> src/config.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub fn setup() {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `meilisearch_search_key` is never read
[INFO] [stderr]   --> src/config.rs:51:9
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub struct Config {
[INFO] [stderr]    |            ------ field in this struct
[INFO] [stderr] 50 |     pub meilisearch_url: String,
[INFO] [stderr] 51 |     pub meilisearch_search_key: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `store_email`, `delete_email`, and `get_all_emails` are never used
[INFO] [stderr]    --> src/models/email_db.rs:139:18
[INFO] [stderr]     |
[INFO] [stderr]  84 | impl EmailDB {
[INFO] [stderr]     | ------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 139 |     pub async fn store_email(&self, email: &Email) -> Result<(), EmailDBError> {
[INFO] [stderr]     |                  ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 147 |     pub async fn delete_email(&self, message_id: &str) -> Result<(), EmailDBError> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 180 |     pub async fn get_all_emails(&self) -> Result<Vec<Email>, EmailDBError> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `refine_query_with_intent` is never used
[INFO] [stderr]   --> src/models/email_query.rs:77:4
[INFO] [stderr]    |
[INFO] [stderr] 77 | fn refine_query_with_intent(query: &str, analysis: QueryCriteria, intent: Intent) -> QueryCriteria {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_date_string` is never used
[INFO] [stderr]    --> src/models/email_query.rs:187:4
[INFO] [stderr]     |
[INFO] [stderr] 187 | fn parse_date_string(date_str: &str) -> Option<DateTime<Utc>> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `AdukiChatAgent` (test "main") generated 9 warnings (run `cargo fix --test "main" -p AdukiChatAgent` to apply 8 suggestions)
[INFO] [stderr] warning: `AdukiChatAgent` (bin "AdukiChatAgent" test) generated 17 warnings (6 duplicates) (run `cargo fix --bin "AdukiChatAgent" -p AdukiChatAgent --tests` to apply 5 suggestions)
[INFO] [stderr] warning: `AdukiChatAgent` (bin "AdukiChatAgent") generated 16 warnings (11 duplicates)
[INFO] [stderr] warning: `AdukiChatAgent` (lib test) generated 11 warnings (10 duplicates)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.57s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/AdukiChatAgent-936ab16150666266)
[INFO] [stdout] 
[INFO] [stdout] running 24 tests
[INFO] [stdout] test config::tests::with_mock_env::test_config_from_test_env ... ok
[INFO] [stdout] test config::tests::test_config_from_real_env ... ok
[INFO] [stdout] test config::tests::with_mock_env::test_config_from_test_env_missing_keys ... ok
[INFO] [stdout] test config::tests::with_mock_env::test_meilisearch_admin_key_mock ... ok
[INFO] [stdout] test config::tests::with_mock_env::test_meilisearch_search_key_mock ... ok
[INFO] [stdout] test config::tests::with_mock_env::test_meilisearch_url_mock ... ok
[INFO] [stdout] test config::tests::with_mock_env::test_meilisearch_master_key_mock ... ok
[INFO] [stdout] test config::tests::with_mock_env::test_ollama_url_mock ... ok
[INFO] [stdout] test config::tests::with_mock_env::test_port_parsing ... ok
[INFO] [stdout] test models::email::tests::test_format_email_plain_text ... ok
[INFO] [stdout] test models::email::tests::test_html_email_formatting ... ok
[INFO] [stdout] test models::email_db::tests::test_search_emails_by_criteria ... ok
[INFO] [stdout] test models::email_query::tests::test_refine_query_with_intent_reply_to_bob ... ok
[INFO] [stdout] test models::email_db::tests::test_store_and_search_email ... ok
[INFO] [stdout] test models::email_db::tests::test_search_from_field_matching ... ok
[INFO] [stdout] test models::email_db::tests::test_store_emails ... ok
[INFO] [stdout] test config::tests::test_with_env_vars ... FAILED
[INFO] [stdout] test models::query_builder::tests::test_build_meili_query_email_address_becomes_filter ... ok
[INFO] [stdout] test models::query_builder::tests::test_build_meili_query_simple_name_becomes_query_term ... ok
[INFO] [stdout] test services::chat_service::tests::test_classify_intent_compose ... FAILED
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stdout] test services::chat_service::tests::test_classify_intent_display ... FAILED
[INFO] [stdout] test services::chat_service::tests::test_classify_intent_list ... ok
[INFO] [stdout] test services::chat_service::tests::test_classify_intent_explain ... FAILED
[INFO] [stdout] test services::chat_service::tests::test_classify_intent_reply ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- config::tests::test_with_env_vars stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'config::tests::test_with_env_vars' (5970) panicked at src/config.rs:41:23:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: "MEILI_SEARCH_KEY not found in environment"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58bef804e651 - <<std[104cf6e2632825ea]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[7c831bd917ebf35f]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x58bef806633a - core[7c831bd917ebf35f]::fmt::write
[INFO] [stdout]    2:     0x58bef80531bc - <alloc[2fdc3f7464fcf288]::vec::Vec<u8> as core[7c831bd917ebf35f]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x58bef8029716 - std[104cf6e2632825ea]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x58bef80464b9 - std[104cf6e2632825ea]::panicking::default_hook
[INFO] [stdout]    5:     0x58bef7cc3a30 - test[73009c9f9aebf890]::test_main_inner::<test[73009c9f9aebf890]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x58bef80467e2 - std[104cf6e2632825ea]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x58bef80297c2 - std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x58bef8021e49 - std[104cf6e2632825ea]::sys::backtrace::__rust_end_short_backtrace::<std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x58bef802a64d - __rustc[b0d56fa5b193ad05]::rust_begin_unwind
[INFO] [stdout]   10:     0x58bef8066b1c - core[7c831bd917ebf35f]::panicking::panic_fmt
[INFO] [stdout]   11:     0x58bef80668f2 - core[7c831bd917ebf35f]::result::unwrap_failed
[INFO] [stdout]   12:     0x58bef7ca3c3a - AdukiChatAgent[83c1faf99a582387]::config::meilisearch_url
[INFO] [stdout]   13:     0x58bef7c7a3e3 - AdukiChatAgent[83c1faf99a582387]::config::tests::test_with_env_vars
[INFO] [stdout]   14:     0x58bef7c72cb9 - <AdukiChatAgent[83c1faf99a582387]::config::tests::test_with_env_vars::{closure#0} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   15:     0x58bef7cb6d1b - test[73009c9f9aebf890]::__rust_begin_short_backtrace::<core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>, fn() -> core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>>
[INFO] [stdout]   16:     0x58bef7cc4385 - test[73009c9f9aebf890]::run_test::{closure#0}
[INFO] [stdout]   17:     0x58bef7cbd744 - std[104cf6e2632825ea]::sys::backtrace::__rust_begin_short_backtrace::<test[73009c9f9aebf890]::run_test::{closure#1}, ()>
[INFO] [stdout]   18:     0x58bef7cc74e2 - <std[104cf6e2632825ea]::thread::lifecycle::spawn_unchecked<test[73009c9f9aebf890]::run_test::{closure#1}, ()>::{closure#1} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   19:     0x58bef804db79 - <std[104cf6e2632825ea]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   20:     0x7155faabc07a - <unknown>
[INFO] [stdout]   21:     0x7155fab4f534 - clone
[INFO] [stdout]   22:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- services::chat_service::tests::test_classify_intent_compose stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'services::chat_service::tests::test_classify_intent_compose' (5988) panicked at src/config.rs:35:24:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: "MEILI_SEARCH_KEY not found in environment"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58bef804e651 - <<std[104cf6e2632825ea]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[7c831bd917ebf35f]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x58bef806633a - core[7c831bd917ebf35f]::fmt::write
[INFO] [stdout]    2:     0x58bef80531bc - <alloc[2fdc3f7464fcf288]::vec::Vec<u8> as core[7c831bd917ebf35f]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x58bef8029716 - std[104cf6e2632825ea]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x58bef80464b9 - std[104cf6e2632825ea]::panicking::default_hook
[INFO] [stdout]    5:     0x58bef7cc3a30 - test[73009c9f9aebf890]::test_main_inner::<test[73009c9f9aebf890]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x58bef80467e2 - std[104cf6e2632825ea]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x58bef80297c2 - std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x58bef8021e49 - std[104cf6e2632825ea]::sys::backtrace::__rust_end_short_backtrace::<std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x58bef802a64d - __rustc[b0d56fa5b193ad05]::rust_begin_unwind
[INFO] [stdout]   10:     0x58bef8066b1c - core[7c831bd917ebf35f]::panicking::panic_fmt
[INFO] [stdout]   11:     0x58bef80668f2 - core[7c831bd917ebf35f]::result::unwrap_failed
[INFO] [stdout]   12:     0x58bef7ca380e - AdukiChatAgent[83c1faf99a582387]::config::ollama_host
[INFO] [stdout]   13:     0x58bef7ca385d - AdukiChatAgent[83c1faf99a582387]::config::create_ollama
[INFO] [stdout]   14:     0x58bef7c53ec2 - AdukiChatAgent[83c1faf99a582387]::services::chat_service::classify_intent::{closure#0}
[INFO] [stdout]   15:     0x58bef7c55041 - AdukiChatAgent[83c1faf99a582387]::services::chat_service::tests::test_classify_intent_compose::{closure#0}
[INFO] [stdout]   16:     0x58bef7c4cf33 - <tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::Context>::enter::<core[7c831bd917ebf35f]::task::poll::Poll<()>, <tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   17:     0x58bef7c3ed02 - <tokio[4c38ed50221ee84]::runtime::context::scoped::Scoped<tokio[4c38ed50221ee84]::runtime::scheduler::Context>>::set::<<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>::{closure#0}, core[7c831bd917ebf35f]::option::Option<()>>::{closure#0}, (alloc[2fdc3f7464fcf288]::boxed::Box<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::Core>, core[7c831bd917ebf35f]::option::Option<()>)>
[INFO] [stdout]   18:     0x58bef7c4d4b7 - <tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>
[INFO] [stdout]   19:     0x58bef7c9b881 - tokio[4c38ed50221ee84]::runtime::context::runtime::enter_runtime::<<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CurrentThread>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>::{closure#0}, ()>
[INFO] [stdout]   20:     0x58bef7c96a5e - <tokio[4c38ed50221ee84]::runtime::runtime::Runtime>::block_on::<core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>
[INFO] [stdout]   21:     0x58bef7c5622b - AdukiChatAgent[83c1faf99a582387]::services::chat_service::tests::test_classify_intent_compose
[INFO] [stdout]   22:     0x58bef7c732e9 - <AdukiChatAgent[83c1faf99a582387]::services::chat_service::tests::test_classify_intent_compose::{closure#0} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   23:     0x58bef7cb6d1b - test[73009c9f9aebf890]::__rust_begin_short_backtrace::<core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>, fn() -> core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>>
[INFO] [stdout]   24:     0x58bef7cc4385 - test[73009c9f9aebf890]::run_test::{closure#0}
[INFO] [stdout]   25:     0x58bef7cbd744 - std[104cf6e2632825ea]::sys::backtrace::__rust_begin_short_backtrace::<test[73009c9f9aebf890]::run_test::{closure#1}, ()>
[INFO] [stdout]   26:     0x58bef7cc74e2 - <std[104cf6e2632825ea]::thread::lifecycle::spawn_unchecked<test[73009c9f9aebf890]::run_test::{closure#1}, ()>::{closure#1} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   27:     0x58bef804db79 - <std[104cf6e2632825ea]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   28:     0x7155faabc07a - <unknown>
[INFO] [stdout]   29:     0x7155fab4f534 - clone
[INFO] [stdout]   30:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- services::chat_service::tests::test_classify_intent_display stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'services::chat_service::tests::test_classify_intent_display' (5989) panicked at src/config.rs:35:24:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: "MEILI_SEARCH_KEY not found in environment"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58bef804e651 - <<std[104cf6e2632825ea]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[7c831bd917ebf35f]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x58bef806633a - core[7c831bd917ebf35f]::fmt::write
[INFO] [stdout]    2:     0x58bef80531bc - <alloc[2fdc3f7464fcf288]::vec::Vec<u8> as core[7c831bd917ebf35f]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x58bef8029716 - std[104cf6e2632825ea]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x58bef80464b9 - std[104cf6e2632825ea]::panicking::default_hook
[INFO] [stdout]    5:     0x58bef7cc3a30 - test[73009c9f9aebf890]::test_main_inner::<test[73009c9f9aebf890]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x58bef80467e2 - std[104cf6e2632825ea]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x58bef80297c2 - std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x58bef8021e49 - std[104cf6e2632825ea]::sys::backtrace::__rust_end_short_backtrace::<std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x58bef802a64d - __rustc[b0d56fa5b193ad05]::rust_begin_unwind
[INFO] [stdout]   10:     0x58bef8066b1c - core[7c831bd917ebf35f]::panicking::panic_fmt
[INFO] [stdout]   11:     0x58bef80668f2 - core[7c831bd917ebf35f]::result::unwrap_failed
[INFO] [stdout]   12:     0x58bef7ca380e - AdukiChatAgent[83c1faf99a582387]::config::ollama_host
[INFO] [stdout]   13:     0x58bef7ca385d - AdukiChatAgent[83c1faf99a582387]::config::create_ollama
[INFO] [stdout]   14:     0x58bef7c53ec2 - AdukiChatAgent[83c1faf99a582387]::services::chat_service::classify_intent::{closure#0}
[INFO] [stdout]   15:     0x58bef7c5524e - AdukiChatAgent[83c1faf99a582387]::services::chat_service::tests::test_classify_intent_display::{closure#0}
[INFO] [stdout]   16:     0x58bef7c4cf33 - <tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::Context>::enter::<core[7c831bd917ebf35f]::task::poll::Poll<()>, <tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   17:     0x58bef7c3ed02 - <tokio[4c38ed50221ee84]::runtime::context::scoped::Scoped<tokio[4c38ed50221ee84]::runtime::scheduler::Context>>::set::<<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>::{closure#0}, core[7c831bd917ebf35f]::option::Option<()>>::{closure#0}, (alloc[2fdc3f7464fcf288]::boxed::Box<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::Core>, core[7c831bd917ebf35f]::option::Option<()>)>
[INFO] [stdout]   18:     0x58bef7c4d4b7 - <tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>
[INFO] [stdout]   19:     0x58bef7c9b881 - tokio[4c38ed50221ee84]::runtime::context::runtime::enter_runtime::<<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CurrentThread>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>::{closure#0}, ()>
[INFO] [stdout]   20:     0x58bef7c96a5e - <tokio[4c38ed50221ee84]::runtime::runtime::Runtime>::block_on::<core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>
[INFO] [stdout]   21:     0x58bef7c5638b - AdukiChatAgent[83c1faf99a582387]::services::chat_service::tests::test_classify_intent_display
[INFO] [stdout]   22:     0x58bef7c73309 - <AdukiChatAgent[83c1faf99a582387]::services::chat_service::tests::test_classify_intent_display::{closure#0} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   23:     0x58bef7cb6d1b - test[73009c9f9aebf890]::__rust_begin_short_backtrace::<core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>, fn() -> core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>>
[INFO] [stdout]   24:     0x58bef7cc4385 - test[73009c9f9aebf890]::run_test::{closure#0}
[INFO] [stdout]   25:     0x58bef7cbd744 - std[104cf6e2632825ea]::sys::backtrace::__rust_begin_short_backtrace::<test[73009c9f9aebf890]::run_test::{closure#1}, ()>
[INFO] [stdout]   26:     0x58bef7cc74e2 - <std[104cf6e2632825ea]::thread::lifecycle::spawn_unchecked<test[73009c9f9aebf890]::run_test::{closure#1}, ()>::{closure#1} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   27:     0x58bef804db79 - <std[104cf6e2632825ea]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   28:     0x7155faabc07a - <unknown>
[INFO] [stdout]   29:     0x7155fab4f534 - clone
[INFO] [stdout]   30:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- services::chat_service::tests::test_classify_intent_explain stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'services::chat_service::tests::test_classify_intent_explain' (5990) panicked at src/config.rs:35:24:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: "MEILI_SEARCH_KEY not found in environment"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58bef804e651 - <<std[104cf6e2632825ea]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[7c831bd917ebf35f]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x58bef806633a - core[7c831bd917ebf35f]::fmt::write
[INFO] [stdout]    2:     0x58bef80531bc - <alloc[2fdc3f7464fcf288]::vec::Vec<u8> as core[7c831bd917ebf35f]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x58bef8029716 - std[104cf6e2632825ea]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x58bef80464b9 - std[104cf6e2632825ea]::panicking::default_hook
[INFO] [stdout]    5:     0x58bef7cc3a30 - test[73009c9f9aebf890]::test_main_inner::<test[73009c9f9aebf890]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x58bef80467e2 - std[104cf6e2632825ea]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x58bef80297c2 - std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x58bef8021e49 - std[104cf6e2632825ea]::sys::backtrace::__rust_end_short_backtrace::<std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x58bef802a64d - __rustc[b0d56fa5b193ad05]::rust_begin_unwind
[INFO] [stdout]   10:     0x58bef8066b1c - core[7c831bd917ebf35f]::panicking::panic_fmt
[INFO] [stdout]   11:     0x58bef80668f2 - core[7c831bd917ebf35f]::result::unwrap_failed
[INFO] [stdout]   12:     0x58bef7ca380e - AdukiChatAgent[83c1faf99a582387]::config::ollama_host
[INFO] [stdout]   13:     0x58bef7ca385d - AdukiChatAgent[83c1faf99a582387]::config::create_ollama
[INFO] [stdout]   14:     0x58bef7c53ec2 - AdukiChatAgent[83c1faf99a582387]::services::chat_service::classify_intent::{closure#0}
[INFO] [stdout]   15:     0x58bef7c555f1 - AdukiChatAgent[83c1faf99a582387]::services::chat_service::tests::test_classify_intent_explain::{closure#0}
[INFO] [stdout]   16:     0x58bef7c4cf33 - <tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::Context>::enter::<core[7c831bd917ebf35f]::task::poll::Poll<()>, <tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   17:     0x58bef7c3ed02 - <tokio[4c38ed50221ee84]::runtime::context::scoped::Scoped<tokio[4c38ed50221ee84]::runtime::scheduler::Context>>::set::<<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>::{closure#0}, core[7c831bd917ebf35f]::option::Option<()>>::{closure#0}, (alloc[2fdc3f7464fcf288]::boxed::Box<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::Core>, core[7c831bd917ebf35f]::option::Option<()>)>
[INFO] [stdout]   18:     0x58bef7c4d4b7 - <tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>
[INFO] [stdout]   19:     0x58bef7c9b881 - tokio[4c38ed50221ee84]::runtime::context::runtime::enter_runtime::<<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CurrentThread>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>::{closure#0}, ()>
[INFO] [stdout]   20:     0x58bef7c96a5e - <tokio[4c38ed50221ee84]::runtime::runtime::Runtime>::block_on::<core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>
[INFO] [stdout]   21:     0x58bef7c5655b - AdukiChatAgent[83c1faf99a582387]::services::chat_service::tests::test_classify_intent_explain
[INFO] [stdout]   22:     0x58bef7c73329 - <AdukiChatAgent[83c1faf99a582387]::services::chat_service::tests::test_classify_intent_explain::{closure#0} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   23:     0x58bef7cb6d1b - test[73009c9f9aebf890]::__rust_begin_short_backtrace::<core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>, fn() -> core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>>
[INFO] [stdout]   24:     0x58bef7cc4385 - test[73009c9f9aebf890]::run_test::{closure#0}
[INFO] [stdout]   25:     0x58bef7cbd744 - std[104cf6e2632825ea]::sys::backtrace::__rust_begin_short_backtrace::<test[73009c9f9aebf890]::run_test::{closure#1}, ()>
[INFO] [stdout]   26:     0x58bef7cc74e2 - <std[104cf6e2632825ea]::thread::lifecycle::spawn_unchecked<test[73009c9f9aebf890]::run_test::{closure#1}, ()>::{closure#1} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   27:     0x58bef804db79 - <std[104cf6e2632825ea]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   28:     0x7155faabc07a - <unknown>
[INFO] [stdout]   29:     0x7155fab4f534 - clone
[INFO] [stdout]   30:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- services::chat_service::tests::test_classify_intent_reply stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'services::chat_service::tests::test_classify_intent_reply' (5992) panicked at src/config.rs:35:24:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: "MEILI_SEARCH_KEY not found in environment"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58bef804e651 - <<std[104cf6e2632825ea]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[7c831bd917ebf35f]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x58bef806633a - core[7c831bd917ebf35f]::fmt::write
[INFO] [stdout]    2:     0x58bef80531bc - <alloc[2fdc3f7464fcf288]::vec::Vec<u8> as core[7c831bd917ebf35f]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x58bef8029716 - std[104cf6e2632825ea]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x58bef80464b9 - std[104cf6e2632825ea]::panicking::default_hook
[INFO] [stdout]    5:     0x58bef7cc3a30 - test[73009c9f9aebf890]::test_main_inner::<test[73009c9f9aebf890]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x58bef80467e2 - std[104cf6e2632825ea]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x58bef80297c2 - std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x58bef8021e49 - std[104cf6e2632825ea]::sys::backtrace::__rust_end_short_backtrace::<std[104cf6e2632825ea]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x58bef802a64d - __rustc[b0d56fa5b193ad05]::rust_begin_unwind
[INFO] [stdout]   10:     0x58bef8066b1c - core[7c831bd917ebf35f]::panicking::panic_fmt
[INFO] [stdout]   11:     0x58bef80668f2 - core[7c831bd917ebf35f]::result::unwrap_failed
[INFO] [stdout]   12:     0x58bef7ca380e - AdukiChatAgent[83c1faf99a582387]::config::ollama_host
[INFO] [stdout]   13:     0x58bef7ca385d - AdukiChatAgent[83c1faf99a582387]::config::create_ollama
[INFO] [stdout]   14:     0x58bef7c53ec2 - AdukiChatAgent[83c1faf99a582387]::services::chat_service::classify_intent::{closure#0}
[INFO] [stdout]   15:     0x58bef7c54e41 - AdukiChatAgent[83c1faf99a582387]::services::chat_service::tests::test_classify_intent_reply::{closure#0}
[INFO] [stdout]   16:     0x58bef7c4cf33 - <tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::Context>::enter::<core[7c831bd917ebf35f]::task::poll::Poll<()>, <tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   17:     0x58bef7c3ed02 - <tokio[4c38ed50221ee84]::runtime::context::scoped::Scoped<tokio[4c38ed50221ee84]::runtime::scheduler::Context>>::set::<<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>::{closure#0}, core[7c831bd917ebf35f]::option::Option<()>>::{closure#0}, (alloc[2fdc3f7464fcf288]::boxed::Box<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::Core>, core[7c831bd917ebf35f]::option::Option<()>)>
[INFO] [stdout]   18:     0x58bef7c4d4b7 - <tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[7c831bd917ebf35f]::pin::Pin<&mut core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>>
[INFO] [stdout]   19:     0x58bef7c9b881 - tokio[4c38ed50221ee84]::runtime::context::runtime::enter_runtime::<<tokio[4c38ed50221ee84]::runtime::scheduler::current_thread::CurrentThread>::block_on<core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>::{closure#0}, ()>
[INFO] [stdout]   20:     0x58bef7c96a5e - <tokio[4c38ed50221ee84]::runtime::runtime::Runtime>::block_on::<core[7c831bd917ebf35f]::pin::Pin<&mut dyn core[7c831bd917ebf35f]::future::future::Future<Output = ()>>>
[INFO] [stdout]   21:     0x58bef7c560cb - AdukiChatAgent[83c1faf99a582387]::services::chat_service::tests::test_classify_intent_reply
[INFO] [stdout]   22:     0x58bef7c732c9 - <AdukiChatAgent[83c1faf99a582387]::services::chat_service::tests::test_classify_intent_reply::{closure#0} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   23:     0x58bef7cb6d1b - test[73009c9f9aebf890]::__rust_begin_short_backtrace::<core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>, fn() -> core[7c831bd917ebf35f]::result::Result<(), alloc[2fdc3f7464fcf288]::string::String>>
[INFO] [stdout]   24:     0x58bef7cc4385 - test[73009c9f9aebf890]::run_test::{closure#0}
[INFO] [stdout]   25:     0x58bef7cbd744 - std[104cf6e2632825ea]::sys::backtrace::__rust_begin_short_backtrace::<test[73009c9f9aebf890]::run_test::{closure#1}, ()>
[INFO] [stdout]   26:     0x58bef7cc74e2 - <std[104cf6e2632825ea]::thread::lifecycle::spawn_unchecked<test[73009c9f9aebf890]::run_test::{closure#1}, ()>::{closure#1} as core[7c831bd917ebf35f]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   27:     0x58bef804db79 - <std[104cf6e2632825ea]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   28:     0x7155faabc07a - <unknown>
[INFO] [stdout]   29:     0x7155fab4f534 - clone
[INFO] [stdout]   30:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     config::tests::test_with_env_vars
[INFO] [stdout]     services::chat_service::tests::test_classify_intent_compose
[INFO] [stdout]     services::chat_service::tests::test_classify_intent_display
[INFO] [stdout]     services::chat_service::tests::test_classify_intent_explain
[INFO] [stdout]     services::chat_service::tests::test_classify_intent_reply
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 19 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "faed2996365b501f3bf3a17cef17c31c253256b5c7ff37a3eeb5015e4f051b3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "faed2996365b501f3bf3a17cef17c31c253256b5c7ff37a3eeb5015e4f051b3d", kill_on_drop: false }`
[INFO] [stdout] faed2996365b501f3bf3a17cef17c31c253256b5c7ff37a3eeb5015e4f051b3d
