[INFO] cloning repository https://github.com/babybirdprd/mcpapp-test-dx
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/babybirdprd/mcpapp-test-dx" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbabybirdprd%2Fmcpapp-test-dx", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbabybirdprd%2Fmcpapp-test-dx'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a0548008e94a5ee61ce75dd6ad13bfb8f02f1f55
[INFO] checking babybirdprd/mcpapp-test-dx against master#eeb94be79adc9df7a09ad0b2421f16e60e6d932c for pr-152971
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbabybirdprd%2Fmcpapp-test-dx" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/babybirdprd/mcpapp-test-dx
[INFO] finished tweaking git repo https://github.com/babybirdprd/mcpapp-test-dx
[INFO] tweaked toml for git repo https://github.com/babybirdprd/mcpapp-test-dx written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/babybirdprd/mcpapp-test-dx on toolchain eeb94be79adc9df7a09ad0b2421f16e60e6d932c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eeb94be79adc9df7a09ad0b2421f16e60e6d932c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/babybirdprd/mcpapp-test-dx 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" "+eeb94be79adc9df7a09ad0b2421f16e60e6d932c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rhai_codegen v3.1.0
[INFO] [stderr]   Downloaded rmcp-macros v0.14.0
[INFO] [stderr]   Downloaded rhai v1.24.0
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.35
[INFO] [stderr]   Downloaded zerocopy v0.8.35
[INFO] [stderr]   Downloaded rmcp v0.14.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+eeb94be79adc9df7a09ad0b2421f16e60e6d932c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0ed6666c8c1c9f5cfe30ba4a1b70cb1d58b219560c3fb6dc3fa4dbc11aac204f
[INFO] running `Command { std: "docker" "start" "-a" "0ed6666c8c1c9f5cfe30ba4a1b70cb1d58b219560c3fb6dc3fa4dbc11aac204f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0ed6666c8c1c9f5cfe30ba4a1b70cb1d58b219560c3fb6dc3fa4dbc11aac204f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0ed6666c8c1c9f5cfe30ba4a1b70cb1d58b219560c3fb6dc3fa4dbc11aac204f", kill_on_drop: false }`
[INFO] [stdout] 0ed6666c8c1c9f5cfe30ba4a1b70cb1d58b219560c3fb6dc3fa4dbc11aac204f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+eeb94be79adc9df7a09ad0b2421f16e60e6d932c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 754260b3746df0aff5703da61c403652cd532fa12de8744783c91ef783464da3
[INFO] running `Command { std: "docker" "start" "-a" "754260b3746df0aff5703da61c403652cd532fa12de8744783c91ef783464da3", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling portable-atomic v1.13.0
[INFO] [stderr]    Compiling slotmap v1.1.1
[INFO] [stderr]    Compiling gio v0.18.4
[INFO] [stderr]     Checking dioxus-core-types v0.7.3
[INFO] [stderr]    Compiling zmij v1.0.17
[INFO] [stderr]     Checking memmap2 v0.9.9
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling find-msvc-tools v0.1.8
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling zerocopy v0.8.35
[INFO] [stderr]    Compiling convert_case v0.8.0
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.10.1
[INFO] [stderr]    Compiling lazy-js-bundle v0.7.3
[INFO] [stderr]     Checking dioxus-cli-config v0.7.3
[INFO] [stderr]    Compiling cc v1.2.54
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling time-macros v0.2.26
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]    Compiling dioxus-interpreter-js v0.7.3
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking uuid v1.20.0
[INFO] [stderr]    Compiling dioxus-document v0.7.3
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling wry v0.53.5
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]     Checking x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling rfd v0.17.2
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]     Checking cfb v0.7.3
[INFO] [stderr]     Checking sledgehammer_utils v0.3.1
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.34
[INFO] [stderr]    Compiling dioxus-desktop v0.7.3
[INFO] [stderr]    Compiling smartstring v1.0.1
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling base16 v0.2.1
[INFO] [stderr]     Checking time v0.3.46
[INFO] [stderr]     Checking infer v0.19.0
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking dyn-clone v1.0.20
[INFO] [stderr]     Checking dunce v1.0.5
[INFO] [stderr]    Compiling rmcp v0.14.0
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]    Compiling dioxus-config-macro v0.7.3
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]     Checking dioxus-config-macros v0.7.3
[INFO] [stderr]    Compiling pastey v0.2.1
[INFO] [stderr]     Checking const_format v0.2.35
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling macro-string v0.1.4
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling dioxus-rsx v0.7.3
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling warnings-macro v0.2.0
[INFO] [stderr]    Compiling const-serialize-macro v0.7.2
[INFO] [stderr]    Compiling const-serialize-macro v0.8.0-alpha.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling dioxus-core-macro v0.7.3
[INFO] [stderr]    Compiling dioxus-html-internal-macro v0.7.3
[INFO] [stderr]    Compiling const-serialize v0.7.2
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]    Compiling sledgehammer_bindgen_macro v0.6.5
[INFO] [stderr]    Compiling dlopen2_derive v0.4.3
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]    Compiling schemars_derive v1.2.0
[INFO] [stderr]    Compiling dioxus-router-macro v0.7.3
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling dioxus-stores-macro v0.7.3
[INFO] [stderr]    Compiling rhai_codegen v3.1.0
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking warnings v0.2.1
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking dlopen2 v0.8.2
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]     Checking sledgehammer_bindgen v0.6.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling rmcp-macros v0.14.0
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]     Checking dioxus-logger v0.7.3
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling enumset_derive v0.14.0
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking bytes v1.11.0
[INFO] [stderr]     Checking subsecond-types v0.7.3
[INFO] [stderr]     Checking keyboard-types v0.7.0
[INFO] [stderr]     Checking euclid v0.22.13
[INFO] [stderr]     Checking const-serialize v0.8.0-alpha.0
[INFO] [stderr]     Checking chrono v0.4.43
[INFO] [stderr]     Checking thin-vec v0.2.14
[INFO] [stderr]     Checking subsecond v0.7.3
[INFO] [stderr]    Compiling toml_datetime v0.6.3
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking rhai v1.24.0
[INFO] [stderr]    Compiling toml_edit v0.20.2
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking manganis-core v0.7.3
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking generational-box v0.7.3
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking schemars v1.2.0
[INFO] [stderr]     Checking tungstenite v0.27.0
[INFO] [stderr]     Checking enumset v1.1.10
[INFO] [stderr]     Checking global-hotkey v0.7.0
[INFO] [stderr]    Compiling manganis-macro v0.7.3
[INFO] [stderr]     Checking dioxus-core v0.7.3
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking manganis v0.7.3
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]    Compiling toml v0.8.2
[INFO] [stderr]    Compiling proc-macro-crate v2.0.2
[INFO] [stderr]     Checking webbrowser v1.0.6
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling gtk3-macros v0.18.2
[INFO] [stderr]    Compiling system-deps v6.2.2
[INFO] [stderr]     Checking dioxus-signals v0.7.3
[INFO] [stderr]     Checking dioxus-devtools-types v0.7.3
[INFO] [stderr]     Checking dioxus-history v0.7.3
[INFO] [stderr]    Compiling glib-macros v0.18.5
[INFO] [stderr]    Compiling glib-sys v0.18.1
[INFO] [stderr]    Compiling gobject-sys v0.18.0
[INFO] [stderr]    Compiling gio-sys v0.18.1
[INFO] [stderr]    Compiling gdk-sys v0.18.2
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.18.0
[INFO] [stderr]    Compiling pango-sys v0.18.0
[INFO] [stderr]    Compiling cairo-sys-rs v0.18.2
[INFO] [stderr]    Compiling atk-sys v0.18.2
[INFO] [stderr]    Compiling gtk-sys v0.18.2
[INFO] [stderr]    Compiling soup3-sys v0.5.0
[INFO] [stderr]    Compiling javascriptcore-rs-sys v1.1.1
[INFO] [stderr]    Compiling webkit2gtk-sys v2.0.1
[INFO] [stderr]     Checking dioxus-hooks v0.7.3
[INFO] [stderr]    Compiling gdkx11-sys v0.18.2
[INFO] [stderr]     Checking dioxus-devtools v0.7.3
[INFO] [stderr]     Checking dioxus-stores v0.7.3
[INFO] [stderr]     Checking dioxus-html v0.7.3
[INFO] [stderr]    Compiling gtk v0.18.2
[INFO] [stderr]     Checking dioxus-asset-resolver v0.7.3
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking glib v0.18.5
[INFO] [stderr]     Checking gdkwayland-sys v0.18.2
[INFO] [stderr]     Checking dioxus-router v0.7.3
[INFO] [stderr]     Checking libappindicator-sys v0.9.0
[INFO] [stderr]     Checking cairo-rs v0.18.5
[INFO] [stderr]     Checking atk v0.18.2
[INFO] [stderr]     Checking javascriptcore-rs v1.1.2
[INFO] [stderr]     Checking gdk-pixbuf v0.18.5
[INFO] [stderr]     Checking pango v0.18.3
[INFO] [stderr]     Checking soup3 v0.5.0
[INFO] [stderr]     Checking gdk v0.18.2
[INFO] [stderr]     Checking libappindicator v0.9.0
[INFO] [stderr]     Checking muda v0.17.1
[INFO] [stderr]     Checking webkit2gtk v2.0.1
[INFO] [stderr]     Checking tao v0.34.5
[INFO] [stderr]     Checking tray-icon v0.21.3
[INFO] [stderr]     Checking dioxus v0.7.3
[INFO] [stderr]     Checking dioxus-desktop-barebones v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `UI_EXTENSION_ID`
[INFO] [stdout]  --> src/host/connection.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     UI_EXTENSION_ID,
[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: `Meta`, `ReadResourceResult`, `ResourceContents`, and `Resource`
[INFO] [stdout]  --> src/host/manager.rs:9:82
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...stToolsResult, ListResourcesResult, ReadResourceResult, Resource, ResourceContents, Tool, Meta};
[INFO] [stdout]   |                                        ^^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JsonRpcError`, `JsonRpcNotification`, `JsonRpcRequest`, `JsonRpcResponse`, and `error_codes`
[INFO] [stdout]  --> src/host/transport.rs:5:23
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::protocol::{JsonRpcRequest, JsonRpcResponse, JsonRpcNotification, JsonRpcError, error_codes};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ApprovedCsp` and `SafeAreaInsets`
[INFO] [stdout]   --> src/host/mod.rs:16:56
[INFO] [stdout]    |
[INFO] [stdout] 16 |     ContainerDimensions, Platform, DeviceCapabilities, SafeAreaInsets, ApprovedCsp,
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Message`
[INFO] [stdout]  --> src/ui/bridge.rs:6:104
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::protocol::{JsonRpcRequest, JsonRpcResponse, JsonRpcNotification, JsonRpcError, error_codes, Message};
[INFO] [stdout]   |                                                                                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bridge::*`
[INFO] [stdout]   --> src/ui/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use bridge::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnectionState`
[INFO] [stdout]   --> src/main.rs:15:31
[INFO] [stdout]    |
[INFO] [stdout] 15 | use host::{ConnectionManager, ConnectionState, HostState};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UI_EXTENSION_ID`
[INFO] [stdout]  --> src/host/connection.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     UI_EXTENSION_ID,
[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: `Meta`, `ReadResourceResult`, `ResourceContents`, and `Resource`
[INFO] [stdout]  --> src/host/manager.rs:9:82
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...stToolsResult, ListResourcesResult, ReadResourceResult, Resource, ResourceContents, Tool, Meta};
[INFO] [stdout]   |                                        ^^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JsonRpcError`, `JsonRpcNotification`, `JsonRpcRequest`, `JsonRpcResponse`, and `error_codes`
[INFO] [stdout]  --> src/host/transport.rs:5:23
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::protocol::{JsonRpcRequest, JsonRpcResponse, JsonRpcNotification, JsonRpcError, error_codes};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ApprovedCsp` and `SafeAreaInsets`
[INFO] [stdout]   --> src/host/mod.rs:16:56
[INFO] [stdout]    |
[INFO] [stdout] 16 |     ContainerDimensions, Platform, DeviceCapabilities, SafeAreaInsets, ApprovedCsp,
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Message`
[INFO] [stdout]  --> src/ui/bridge.rs:6:104
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::protocol::{JsonRpcRequest, JsonRpcResponse, JsonRpcNotification, JsonRpcError, error_codes, Message};
[INFO] [stdout]   |                                                                                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bridge::*`
[INFO] [stdout]   --> src/ui/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use bridge::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnectionState`
[INFO] [stdout]   --> src/main.rs:15:31
[INFO] [stdout]    |
[INFO] [stdout] 15 | use host::{ConnectionManager, ConnectionState, HostState};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol_version`
[INFO] [stdout]   --> src/host/connection.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let protocol_version = response
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol_version`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol_version`
[INFO] [stdout]   --> src/host/connection.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let protocol_version = response
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol_version`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on_message`
[INFO] [stdout]    --> src/ui/html_view.rs:342:9
[INFO] [stdout]     |
[INFO] [stdout] 342 |     let on_message = props.on_message.clone();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on_message`
[INFO] [stdout]    --> src/ui/html_view.rs:342:9
[INFO] [stdout]     |
[INFO] [stdout] 342 |     let on_message = props.on_message.clone();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:344:31
[INFO] [stdout]     |
[INFO] [stdout] 344 |         DisplayMode::Inline | _ => "",
[INFO] [stdout]     |                               ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/main.rs:344:31
[INFO] [stdout]     |
[INFO] [stdout] 342 |         DisplayMode::Fullscreen => "fixed inset-0 z-50 bg-white",
[INFO] [stdout]     |         ----------------------- matches some of the same values
[INFO] [stdout] 343 |         DisplayMode::Pip => "fixed bottom-4 right-4 w-96 h-64 z-50 bg-white shadow-2xl rounded-lg border border-gray-200",
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout] 344 |         DisplayMode::Inline | _ => "",
[INFO] [stdout]     |         -------------------   ^ collectively making this unreachable
[INFO] [stdout]     |         |
[INFO] [stdout]     |         matches some of the same values
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:344:31
[INFO] [stdout]     |
[INFO] [stdout] 344 |         DisplayMode::Inline | _ => "",
[INFO] [stdout]     |                               ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/main.rs:344:31
[INFO] [stdout]     |
[INFO] [stdout] 342 |         DisplayMode::Fullscreen => "fixed inset-0 z-50 bg-white",
[INFO] [stdout]     |         ----------------------- matches some of the same values
[INFO] [stdout] 343 |         DisplayMode::Pip => "fixed bottom-4 right-4 w-96 h-64 z-50 bg-white shadow-2xl rounded-lg border border-gray-200",
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout] 344 |         DisplayMode::Inline | _ => "",
[INFO] [stdout]     |         -------------------   ^ collectively making this unreachable
[INFO] [stdout]     |         |
[INFO] [stdout]     |         matches some of the same values
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 287 |     let mut app_state = use_context::<AppState>();
[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]    --> src/main.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 287 |     let mut app_state = use_context::<AppState>();
[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: unused variable: `content`
[INFO] [stdout]    --> src/main.rs:319:50
[INFO] [stdout]     |
[INFO] [stdout] 319 |             UiMessageEvent::UpdateModelContext { content, structured_content } => {
[INFO] [stdout]     |                                                  ^^^^^^^ help: try ignoring the field: `content: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]    --> src/main.rs:319:50
[INFO] [stdout]     |
[INFO] [stdout] 319 |             UiMessageEvent::UpdateModelContext { content, structured_content } => {
[INFO] [stdout]     |                                                  ^^^^^^^ help: try ignoring the field: `content: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structured_content`
[INFO] [stdout]    --> src/main.rs:319:59
[INFO] [stdout]     |
[INFO] [stdout] 319 |             UiMessageEvent::UpdateModelContext { content, structured_content } => {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `structured_content: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structured_content`
[INFO] [stdout]    --> src/main.rs:319:59
[INFO] [stdout]     |
[INFO] [stdout] 319 |             UiMessageEvent::UpdateModelContext { content, structured_content } => {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `structured_content: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/host/mod.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl HostState {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn to_full_capabilities(&self) -> UiHostCapabilities {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn to_minimal_capabilities(&self) -> UiHostCapabilities {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn with_display_modes(mut self, modes: Vec<DisplayMode>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn with_theme(mut self, theme: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn with_platform(mut self, platform: Platform) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn with_locale(mut self, locale: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn with_timezone(mut self, tz: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UiSession` is never constructed
[INFO] [stdout]    --> src/host/mod.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct UiSession {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UiSessionState` is never used
[INFO] [stdout]    --> src/host/mod.rs:171:10
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub enum UiSessionState {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_tool_info` are never used
[INFO] [stdout]    --> src/host/mod.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 186 | impl UiSession {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 187 |     pub fn new(id: impl Into<String>, server_id: impl Into<String>, resource_uri: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn with_tool_info(mut self, tool_info: ToolInfo) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UiSessionEvent` is never used
[INFO] [stdout]    --> src/host/mod.rs:207:10
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum UiSessionEvent {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/host/connection.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct McpServerConnection {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 19 |     /// Connection ID
[INFO] [stdout] 20 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `McpServerConnection` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Error` is never constructed
[INFO] [stdout]   --> src/host/connection.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum ConnectionState {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 55 |     Error(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConnectionState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_negotiated_capabilities`, `supports_display_mode`, `get_tools`, `get_ui_resources`, and `find_tool` are never used
[INFO] [stdout]    --> src/host/connection.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl McpServerConnection {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn get_negotiated_capabilities(&self) -> Option<&NegotiatedCapabilities> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn supports_display_mode(&self, mode: crate::protocol::DisplayMode) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub async fn get_tools(&self) -> Vec<Tool> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub async fn get_ui_resources(&self) -> Vec<UiResource> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub async fn find_tool(&self, name: &str) -> Option<Tool> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `connection_id` and `state` are never read
[INFO] [stdout]    --> src/host/connection.rs:245:20
[INFO] [stdout]     |
[INFO] [stdout] 245 |     StateChanged { connection_id: String, state: ConnectionState },
[INFO] [stdout]     |     ------------   ^^^^^^^^^^^^^          ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `connection_id`, `method`, and `params` are never read
[INFO] [stdout]    --> src/host/connection.rs:251:20
[INFO] [stdout]     |
[INFO] [stdout] 251 |     Notification { connection_id: String, method: String, params: Option<Value> },
[INFO] [stdout]     |     ------------   ^^^^^^^^^^^^^          ^^^^^^          ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/host/mod.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl HostState {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn to_full_capabilities(&self) -> UiHostCapabilities {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn to_minimal_capabilities(&self) -> UiHostCapabilities {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn with_display_modes(mut self, modes: Vec<DisplayMode>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn with_theme(mut self, theme: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn with_platform(mut self, platform: Platform) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn with_locale(mut self, locale: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn with_timezone(mut self, tz: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `connection_id` and `error` are never read
[INFO] [stdout]    --> src/host/connection.rs:253:13
[INFO] [stdout]     |
[INFO] [stdout] 253 |     Error { connection_id: String, error: String },
[INFO] [stdout]     |     -----   ^^^^^^^^^^^^^          ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UiSession` is never constructed
[INFO] [stdout]    --> src/host/mod.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct UiSession {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `connection_id` is never read
[INFO] [stdout]    --> src/host/connection.rs:255:14
[INFO] [stdout]     |
[INFO] [stdout] 255 |     Closed { connection_id: String },
[INFO] [stdout]     |     ------   ^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UiSessionState` is never used
[INFO] [stdout]    --> src/host/mod.rs:171:10
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub enum UiSessionState {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_tool_info` are never used
[INFO] [stdout]    --> src/host/mod.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 186 | impl UiSession {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 187 |     pub fn new(id: impl Into<String>, server_id: impl Into<String>, resource_uri: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn with_tool_info(mut self, tool_info: ToolInfo) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ToolsUpdated` and `ResourcesUpdated` are never constructed
[INFO] [stdout]    --> src/host/connection.rs:247:5
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub enum ConnectionEvent {
[INFO] [stdout]     |          --------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 247 |     ToolsUpdated { connection_id: String, tools: Vec<Tool> },
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 248 |     /// Resources list updated
[INFO] [stdout] 249 |     ResourcesUpdated { connection_id: String, resources: Vec<Resource> },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UiSessionEvent` is never used
[INFO] [stdout]    --> src/host/mod.rs:207:10
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum UiSessionEvent {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/host/connection.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct McpServerConnection {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 19 |     /// Connection ID
[INFO] [stdout] 20 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `McpServerConnection` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Error` is never constructed
[INFO] [stdout]   --> src/host/connection.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum ConnectionState {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 55 |     Error(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConnectionState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_all_connections`, `get_all_tools`, `get_all_ui_resources`, `disconnect`, and `subscribe_events` are never used
[INFO] [stdout]    --> src/host/manager.rs:296:18
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl ConnectionManager {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub async fn get_all_connections(&self) -> Vec<McpServerConnection> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub async fn get_all_tools(&self) -> Vec<(String, Tool)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     pub async fn get_all_ui_resources(&self) -> Vec<(String, UiResource)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 479 |     pub async fn disconnect(&self, connection_id: &str) -> Result<(), ConnectionError> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 493 |     pub fn subscribe_events(&self) -> mpsc::UnboundedReceiver<ConnectionEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `close` and `is_connected` are never used
[INFO] [stdout]   --> src/host/transport.rs:28:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait McpTransport: Send + Sync {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 28 |     async fn close(&mut self) -> Result<(), TransportError>;
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn is_connected(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_negotiated_capabilities`, `supports_display_mode`, `get_tools`, `get_ui_resources`, and `find_tool` are never used
[INFO] [stdout]    --> src/host/connection.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl McpServerConnection {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn get_negotiated_capabilities(&self) -> Option<&NegotiatedCapabilities> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn supports_display_mode(&self, mode: crate::protocol::DisplayMode) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub async fn get_tools(&self) -> Vec<Tool> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub async fn get_ui_resources(&self) -> Vec<UiResource> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub async fn find_tool(&self, name: &str) -> Option<Tool> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Protocol` is never constructed
[INFO] [stdout]   --> src/host/transport.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub enum TransportError {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     Protocol(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransportError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `child` is never read
[INFO] [stdout]   --> src/host/transport.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct StdioTransport {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 60 |     /// Child process
[INFO] [stdout] 61 |     child: Child,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `connection_id` and `state` are never read
[INFO] [stdout]    --> src/host/connection.rs:245:20
[INFO] [stdout]     |
[INFO] [stdout] 245 |     StateChanged { connection_id: String, state: ConnectionState },
[INFO] [stdout]     |     ------------   ^^^^^^^^^^^^^          ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_id` is never used
[INFO] [stdout]   --> src/protocol/mod.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl JsonRpcRequest {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn with_id(mut self, id: Value) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `connection_id`, `method`, and `params` are never read
[INFO] [stdout]    --> src/host/connection.rs:251:20
[INFO] [stdout]     |
[INFO] [stdout] 251 |     Notification { connection_id: String, method: String, params: Option<Value> },
[INFO] [stdout]     |     ------------   ^^^^^^^^^^^^^          ^^^^^^          ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_data` are never used
[INFO] [stdout]    --> src/protocol/mod.rs:95:12
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl JsonRpcError {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  95 |     pub fn new(code: i32, message: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn with_data(mut self, data: Value) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `connection_id` and `error` are never read
[INFO] [stdout]    --> src/host/connection.rs:253:13
[INFO] [stdout]     |
[INFO] [stdout] 253 |     Error { connection_id: String, error: String },
[INFO] [stdout]     |     -----   ^^^^^^^^^^^^^          ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `full`, `minimal`, `supports_open_links`, and `supports_logging` are never used
[INFO] [stdout]   --> src/protocol/capabilities.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl UiHostCapabilities {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 40 |     /// Create capabilities with all features enabled
[INFO] [stdout] 41 |     pub fn full() -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn minimal() -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn supports_open_links(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn supports_logging(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `connection_id` is never read
[INFO] [stdout]    --> src/host/connection.rs:255:14
[INFO] [stdout]     |
[INFO] [stdout] 255 |     Closed { connection_id: String },
[INFO] [stdout]     |     ------   ^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has_any` and `granted` are never used
[INFO] [stdout]    --> src/protocol/capabilities.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 146 | impl UiPermissions {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 147 |     /// Check if any permissions are granted
[INFO] [stdout] 148 |     pub fn has_any(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn granted(&self) -> Vec<&'static str> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ToolsUpdated` and `ResourcesUpdated` are never constructed
[INFO] [stdout]    --> src/host/connection.rs:247:5
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub enum ConnectionEvent {
[INFO] [stdout]     |          --------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 247 |     ToolsUpdated { connection_id: String, tools: Vec<Tool> },
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 248 |     /// Resources list updated
[INFO] [stdout] 249 |     ResourcesUpdated { connection_id: String, resources: Vec<Resource> },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allows_connection` and `allows_resource` are never used
[INFO] [stdout]    --> src/protocol/capabilities.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout] 184 | impl ApprovedCsp {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 185 |     /// Check if a domain is approved for connections
[INFO] [stdout] 186 |     pub fn allows_connection(&self, domain: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn allows_resource(&self, domain: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `supports_display_mode`, `exposes_tools`, and `supports_tool_notifications` are never used
[INFO] [stdout]    --> src/protocol/capabilities.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 221 | impl McpUiAppCapabilities {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] 222 |     /// Check if app supports a specific display mode
[INFO] [stdout] 223 |     pub fn supports_display_mode(&self, mode: DisplayMode) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn exposes_tools(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn supports_tool_notifications(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_all_connections`, `get_all_tools`, `get_all_ui_resources`, `disconnect`, and `subscribe_events` are never used
[INFO] [stdout]    --> src/host/manager.rs:296:18
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl ConnectionManager {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub async fn get_all_connections(&self) -> Vec<McpServerConnection> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub async fn get_all_tools(&self) -> Vec<(String, Tool)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     pub async fn get_all_ui_resources(&self) -> Vec<(String, UiResource)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 479 |     pub async fn disconnect(&self, connection_id: &str) -> Result<(), ConnectionError> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 493 |     pub fn subscribe_events(&self) -> mpsc::UnboundedReceiver<ConnectionEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ui_capabilities`, `supports_tools`, and `supports_resources` are never used
[INFO] [stdout]    --> src/protocol/capabilities.rs:312:12
[INFO] [stdout]     |
[INFO] [stdout] 303 | impl ServerCapabilities {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn ui_capabilities(&self) -> Option<&UiHostCapabilities> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn supports_tools(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub fn supports_resources(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `close` and `is_connected` are never used
[INFO] [stdout]   --> src/host/transport.rs:28:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait McpTransport: Send + Sync {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 28 |     async fn close(&mut self) -> Result<(), TransportError>;
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn is_connected(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Protocol` is never constructed
[INFO] [stdout]   --> src/host/transport.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub enum TransportError {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     Protocol(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransportError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `child` is never read
[INFO] [stdout]   --> src/host/transport.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct StdioTransport {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 60 |     /// Child process
[INFO] [stdout] 61 |     child: Child,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `protocol_version`, `supports_ui_apps`, `display_modes`, `tool_notifications`, `resource_notifications`, and `permissions` are never read
[INFO] [stdout]    --> src/protocol/capabilities.rs:355:9
[INFO] [stdout]     |
[INFO] [stdout] 353 | pub struct NegotiatedCapabilities {
[INFO] [stdout]     |            ---------------------- fields in this struct
[INFO] [stdout] 354 |     /// Protocol version agreed upon
[INFO] [stdout] 355 |     pub protocol_version: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 356 |     /// Server supports MCP Apps
[INFO] [stdout] 357 |     pub supports_ui_apps: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 358 |     /// Agreed display modes
[INFO] [stdout] 359 |     pub display_modes: Vec<DisplayMode>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 360 |     /// Whether tool notifications are supported
[INFO] [stdout] 361 |     pub tool_notifications: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 362 |     /// Whether resource notifications are supported
[INFO] [stdout] 363 |     pub resource_notifications: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 364 |     /// Granted permissions
[INFO] [stdout] 365 |     pub permissions: UiPermissions,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NegotiatedCapabilities` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_id` is never used
[INFO] [stdout]   --> src/protocol/mod.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl JsonRpcRequest {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn with_id(mut self, id: Value) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpUiInitializeRequest` is never constructed
[INFO] [stdout]   --> src/protocol/lifecycle.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct McpUiInitializeRequest {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_data` are never used
[INFO] [stdout]    --> src/protocol/mod.rs:95:12
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl JsonRpcError {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  95 |     pub fn new(code: i32, message: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn with_data(mut self, data: Value) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AppInfo` is never constructed
[INFO] [stdout]   --> src/protocol/lifecycle.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct AppInfo {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpUiInitializeResult` is never constructed
[INFO] [stdout]   --> src/protocol/lifecycle.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct McpUiInitializeResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `allows_resource` is never used
[INFO] [stdout]    --> src/protocol/capabilities.rs:195:12
[INFO] [stdout]     |
[INFO] [stdout] 184 | impl ApprovedCsp {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn allows_resource(&self, domain: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HostInfo` is never constructed
[INFO] [stdout]   --> src/protocol/lifecycle.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct HostInfo {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InitializedNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub struct InitializedNotification {}
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolInputNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct ToolInputNotification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolInputPartialNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub struct ToolInputPartialNotification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolResultNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub struct ToolResultNotification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `supports_display_mode`, `exposes_tools`, and `supports_tool_notifications` are never used
[INFO] [stdout]    --> src/protocol/capabilities.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 221 | impl McpUiAppCapabilities {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] 222 |     /// Check if app supports a specific display mode
[INFO] [stdout] 223 |     pub fn supports_display_mode(&self, mode: DisplayMode) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn exposes_tools(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn supports_tool_notifications(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolCancelledNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub struct ToolCancelledNotification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResourceTeardownRequest` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub struct ResourceTeardownRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ui_capabilities`, `supports_tools`, and `supports_resources` are never used
[INFO] [stdout]    --> src/protocol/capabilities.rs:312:12
[INFO] [stdout]     |
[INFO] [stdout] 303 | impl ServerCapabilities {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn ui_capabilities(&self) -> Option<&UiHostCapabilities> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn supports_tools(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub fn supports_resources(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SizeChangedNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub struct SizeChangedNotification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HostContextChangedNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:233:12
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub struct HostContextChangedNotification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SandboxProxyReadyNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:241:12
[INFO] [stdout]     |
[INFO] [stdout] 241 | pub struct SandboxProxyReadyNotification {}
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SandboxResourceReadyNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:246:12
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub struct SandboxResourceReadyNotification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CspConfig` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:263:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub struct CspConfig {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `protocol_version`, `supports_ui_apps`, `display_modes`, `tool_notifications`, `resource_notifications`, and `permissions` are never read
[INFO] [stdout]    --> src/protocol/capabilities.rs:355:9
[INFO] [stdout]     |
[INFO] [stdout] 353 | pub struct NegotiatedCapabilities {
[INFO] [stdout]     |            ---------------------- fields in this struct
[INFO] [stdout] 354 |     /// Protocol version agreed upon
[INFO] [stdout] 355 |     pub protocol_version: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 356 |     /// Server supports MCP Apps
[INFO] [stdout] 357 |     pub supports_ui_apps: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 358 |     /// Agreed display modes
[INFO] [stdout] 359 |     pub display_modes: Vec<DisplayMode>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 360 |     /// Whether tool notifications are supported
[INFO] [stdout] 361 |     pub tool_notifications: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 362 |     /// Whether resource notifications are supported
[INFO] [stdout] 363 |     pub resource_notifications: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 364 |     /// Granted permissions
[INFO] [stdout] 365 |     pub permissions: UiPermissions,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NegotiatedCapabilities` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UiPermissionsConfig` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:273:12
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub struct UiPermissionsConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpUiInitializeRequest` is never constructed
[INFO] [stdout]   --> src/protocol/lifecycle.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct McpUiInitializeRequest {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RequestDisplayModeRequest` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:282:12
[INFO] [stdout]     |
[INFO] [stdout] 282 | pub struct RequestDisplayModeRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AppInfo` is never constructed
[INFO] [stdout]   --> src/protocol/lifecycle.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct AppInfo {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpUiInitializeResult` is never constructed
[INFO] [stdout]   --> src/protocol/lifecycle.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct McpUiInitializeResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RequestDisplayModeResult` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:289:12
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub struct RequestDisplayModeResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HostInfo` is never constructed
[INFO] [stdout]   --> src/protocol/lifecycle.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct HostInfo {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UpdateModelContextRequest` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:297:12
[INFO] [stdout]     |
[INFO] [stdout] 297 | pub struct UpdateModelContextRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InitializedNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub struct InitializedNotification {}
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenLinkRequest` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:308:12
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub struct OpenLinkRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolInputNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct ToolInputNotification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UiMessageRequest` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:315:12
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub struct UiMessageRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolInputPartialNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub struct ToolInputPartialNotification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpUiToolMeta` is never constructed
[INFO] [stdout]    --> src/protocol/resources.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct McpUiToolMeta {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolResultNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub struct ToolResultNotification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ToolVisibility` is never used
[INFO] [stdout]    --> src/protocol/resources.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub enum ToolVisibility {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolCancelledNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub struct ToolCancelledNotification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResourceTeardownRequest` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub struct ResourceTeardownRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `is_html_content_type` is never used
[INFO] [stdout]    --> src/protocol/resources.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl UiResource {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn is_html_content_type(mime_type: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SizeChangedNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub struct SizeChangedNotification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_initialize_request` is never used
[INFO] [stdout]   --> src/protocol/messages.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn ui_initialize_request(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_initialize_response` is never used
[INFO] [stdout]   --> src/protocol/messages.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn ui_initialize_response(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialized_notification` is never used
[INFO] [stdout]   --> src/protocol/messages.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn initialized_notification() -> JsonRpcNotification {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HostContextChangedNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:233:12
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub struct HostContextChangedNotification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SandboxProxyReadyNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:241:12
[INFO] [stdout]     |
[INFO] [stdout] 241 | pub struct SandboxProxyReadyNotification {}
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tool_input_notification` is never used
[INFO] [stdout]   --> src/protocol/messages.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn tool_input_notification(arguments: Value) -> JsonRpcNotification {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SandboxResourceReadyNotification` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:246:12
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub struct SandboxResourceReadyNotification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tool_input_partial_notification` is never used
[INFO] [stdout]   --> src/protocol/messages.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn tool_input_partial_notification(arguments: Value) -> JsonRpcNotification {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tool_result_notification` is never used
[INFO] [stdout]   --> src/protocol/messages.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn tool_result_notification(result: Value) -> JsonRpcNotification {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CspConfig` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:263:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub struct CspConfig {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tool_cancelled_notification` is never used
[INFO] [stdout]   --> src/protocol/messages.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn tool_cancelled_notification(reason: Option<&str>) -> JsonRpcNotification {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UiPermissionsConfig` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:273:12
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub struct UiPermissionsConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RequestDisplayModeRequest` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:282:12
[INFO] [stdout]     |
[INFO] [stdout] 282 | pub struct RequestDisplayModeRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RequestDisplayModeResult` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:289:12
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub struct RequestDisplayModeResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UpdateModelContextRequest` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:297:12
[INFO] [stdout]     |
[INFO] [stdout] 297 | pub struct UpdateModelContextRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenLinkRequest` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:308:12
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub struct OpenLinkRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UiMessageRequest` is never constructed
[INFO] [stdout]    --> src/protocol/lifecycle.rs:315:12
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub struct UiMessageRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `McpUiToolMeta` is never constructed
[INFO] [stdout]    --> src/protocol/resources.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct McpUiToolMeta {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resource_teardown_request` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn resource_teardown_request(id: Value, reason: Option<&str>) -> JsonRpcRequest {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ToolVisibility` is never used
[INFO] [stdout]    --> src/protocol/resources.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub enum ToolVisibility {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `size_changed_notification` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn size_changed_notification(width: u32, height: u32) -> JsonRpcNotification {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `host_context_changed_notification` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn host_context_changed_notification(context: Value) -> JsonRpcNotification {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `is_html_content_type` is never used
[INFO] [stdout]    --> src/protocol/resources.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl UiResource {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn is_html_content_type(mime_type: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sandbox_proxy_ready_notification` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn sandbox_proxy_ready_notification() -> JsonRpcNotification {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sandbox_resource_ready_notification` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn sandbox_resource_ready_notification(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_initialize_response` is never used
[INFO] [stdout]   --> src/protocol/messages.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn ui_initialize_response(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `request_display_mode_request` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn request_display_mode_request(id: Value, mode: DisplayMode) -> JsonRpcRequest {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialized_notification` is never used
[INFO] [stdout]   --> src/protocol/messages.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn initialized_notification() -> JsonRpcNotification {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `request_display_mode_response` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn request_display_mode_response(id: Value, mode: DisplayMode) -> JsonRpcResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_model_context_request` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub fn update_model_context_request(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_link_request` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn open_link_request(id: Value, url: impl Into<String>) -> JsonRpcRequest {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_message_request` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:197:8
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub fn ui_message_request(id: Value, role: impl Into<String>, content: Value) -> JsonRpcRequest {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tool_input_notification` is never used
[INFO] [stdout]   --> src/protocol/messages.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn tool_input_notification(arguments: Value) -> JsonRpcNotification {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `success_response` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:208:8
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub fn success_response(id: Value) -> JsonRpcResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tool_input_partial_notification` is never used
[INFO] [stdout]   --> src/protocol/messages.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn tool_input_partial_notification(arguments: Value) -> JsonRpcNotification {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_response` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:218:8
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub fn error_response(id: Value, code: i32, message: impl Into<String>) -> JsonRpcResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_message` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub fn parse_message(value: Value) -> Result<Message, serde_json::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tool_result_notification` is never used
[INFO] [stdout]   --> src/protocol/messages.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn tool_result_notification(result: Value) -> JsonRpcNotification {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Message` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:247:10
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub enum Message {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARSE_ERROR` is never used
[INFO] [stdout]    --> src/protocol/mod.rs:112:15
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub const PARSE_ERROR: i32 = -32700;
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tool_cancelled_notification` is never used
[INFO] [stdout]   --> src/protocol/messages.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn tool_cancelled_notification(reason: Option<&str>) -> JsonRpcNotification {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVALID_REQUEST` is never used
[INFO] [stdout]    --> src/protocol/mod.rs:114:15
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub const INVALID_REQUEST: i32 = -32600;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resource_teardown_request` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn resource_teardown_request(id: Value, reason: Option<&str>) -> JsonRpcRequest {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `METHOD_NOT_FOUND` is never used
[INFO] [stdout]    --> src/protocol/mod.rs:116:15
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub const METHOD_NOT_FOUND: i32 = -32601;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `host_context_changed_notification` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn host_context_changed_notification(context: Value) -> JsonRpcNotification {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVALID_PARAMS` is never used
[INFO] [stdout]    --> src/protocol/mod.rs:118:15
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub const INVALID_PARAMS: i32 = -32602;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERNAL_ERROR` is never used
[INFO] [stdout]    --> src/protocol/mod.rs:120:15
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub const INTERNAL_ERROR: i32 = -32603;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sandbox_proxy_ready_notification` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn sandbox_proxy_ready_notification() -> JsonRpcNotification {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SERVER_ERROR` is never used
[INFO] [stdout]    --> src/protocol/mod.rs:122:15
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub const SERVER_ERROR: i32 = -32000;
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sandbox_resource_ready_notification` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn sandbox_resource_ready_notification(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `request_display_mode_request` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn request_display_mode_request(id: Value, mode: DisplayMode) -> JsonRpcRequest {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_html` and `is_rhai` are never used
[INFO] [stdout]   --> src/ui/mod.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl UiContent {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn is_html(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn is_rhai(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `request_display_mode_response` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn request_display_mode_response(id: Value, mode: DisplayMode) -> JsonRpcResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_model_context_request` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub fn update_model_context_request(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_link_request` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn open_link_request(id: Value, url: impl Into<String>) -> JsonRpcRequest {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ui_message_request` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:197:8
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub fn ui_message_request(id: Value, role: impl Into<String>, content: Value) -> JsonRpcRequest {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `success_response` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:208:8
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub fn success_response(id: Value) -> JsonRpcResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/ui/mod.rs:95:5
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub enum UiMessageEvent {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout]  94 |     /// Tool call request
[INFO] [stdout]  95 |     ToolCall { name: String, arguments: serde_json::Value },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]  96 |     /// Message to host
[INFO] [stdout]  97 |     Message { role: String, content: serde_json::Value },
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]  98 |     /// Open link request
[INFO] [stdout]  99 |     OpenLink { url: String },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 100 |     /// Display mode change request
[INFO] [stdout] 101 |     RequestDisplayMode { mode: DisplayMode },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 102 |     /// Update model context
[INFO] [stdout] 103 |     UpdateModelContext { content: Option<Vec<serde_json::Value>>, structured_content: Option<serde_json::Value> },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 104 |     /// Log message
[INFO] [stdout] 105 |     Log { level: String, message: String },
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 106 |     /// Size changed
[INFO] [stdout] 107 |     SizeChanged { width: u32, height: u32 },
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 108 |     /// Generic JSON-RPC message
[INFO] [stdout] 109 |     JsonRpc(serde_json::Value),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UiMessageEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_response` is never used
[INFO] [stdout]    --> src/protocol/messages.rs:218:8
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub fn error_response(id: Value, code: i32, message: impl Into<String>) -> JsonRpcResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `html_escape` is never used
[INFO] [stdout]    --> src/ui/html_view.rs:553:4
[INFO] [stdout]     |
[INFO] [stdout] 553 | fn html_escape(input: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UiBridge` is never constructed
[INFO] [stdout]   --> src/ui/bridge.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct UiBridge {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/protocol/messages.rs:249:14
[INFO] [stdout]     |
[INFO] [stdout] 249 |     Response(JsonRpcResponse),
[INFO] [stdout]     |     -------- ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Message` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 249 -     Response(JsonRpcResponse),
[INFO] [stdout] 249 +     Response(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ui/bridge.rs:44:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl UiBridge {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  43 |     /// Create a new UI bridge
[INFO] [stdout]  44 |     pub fn new(session_id: impl Into<String>) -> (Self, mpsc::UnboundedReceiver<Value>, mpsc::UnboundedSender<Value>) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub async fn send_request(&self, method: impl Into<String>, params: Option<Value>) -> Result<Value, JsonRpcError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn send_notification(&self, method: impl Into<String>, params: Option<Value>) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub async fn on_request<F>(&self, method: impl Into<String>, handler: F)
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub async fn on_notification<F>(&self, method: impl Into<String>, handler: F)
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub async fn process_message(&self, message: Value) -> Result<(), String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub async fn start(&self) {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARSE_ERROR` is never used
[INFO] [stdout]    --> src/protocol/mod.rs:112:15
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub const PARSE_ERROR: i32 = -32700;
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVALID_REQUEST` is never used
[INFO] [stdout]    --> src/protocol/mod.rs:114:15
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub const INVALID_REQUEST: i32 = -32600;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `METHOD_NOT_FOUND` is never used
[INFO] [stdout]    --> src/protocol/mod.rs:116:15
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub const METHOD_NOT_FOUND: i32 = -32601;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVALID_PARAMS` is never used
[INFO] [stdout]    --> src/protocol/mod.rs:118:15
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub const INVALID_PARAMS: i32 = -32602;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BridgeManager` is never constructed
[INFO] [stdout]    --> src/ui/bridge.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub struct BridgeManager {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERNAL_ERROR` is never used
[INFO] [stdout]    --> src/protocol/mod.rs:120:15
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub const INTERNAL_ERROR: i32 = -32603;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SERVER_ERROR` is never used
[INFO] [stdout]    --> src/protocol/mod.rs:122:15
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub const SERVER_ERROR: i32 = -32000;
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `create_bridge`, `get_bridge`, and `remove_bridge` are never used
[INFO] [stdout]    --> src/ui/bridge.rs:228:12
[INFO] [stdout]     |
[INFO] [stdout] 227 | impl BridgeManager {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 228 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub async fn create_bridge(&self, session_id: impl Into<String>) -> UiBridge {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub async fn get_bridge(&self, session_id: &str) -> Option<UiBridge> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub async fn remove_bridge(&self, session_id: &str) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_html` and `is_rhai` are never used
[INFO] [stdout]   --> src/ui/mod.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl UiContent {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn is_html(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn is_rhai(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/ui/mod.rs:95:5
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub enum UiMessageEvent {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout]  94 |     /// Tool call request
[INFO] [stdout]  95 |     ToolCall { name: String, arguments: serde_json::Value },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]  96 |     /// Message to host
[INFO] [stdout]  97 |     Message { role: String, content: serde_json::Value },
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]  98 |     /// Open link request
[INFO] [stdout]  99 |     OpenLink { url: String },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 100 |     /// Display mode change request
[INFO] [stdout] 101 |     RequestDisplayMode { mode: DisplayMode },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 102 |     /// Update model context
[INFO] [stdout] 103 |     UpdateModelContext { content: Option<Vec<serde_json::Value>>, structured_content: Option<serde_json::Value> },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 104 |     /// Log message
[INFO] [stdout] 105 |     Log { level: String, message: String },
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 106 |     /// Size changed
[INFO] [stdout] 107 |     SizeChanged { width: u32, height: u32 },
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 108 |     /// Generic JSON-RPC message
[INFO] [stdout] 109 |     JsonRpc(serde_json::Value),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UiMessageEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UiBridge` is never constructed
[INFO] [stdout]   --> src/ui/bridge.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct UiBridge {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ui/bridge.rs:44:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl UiBridge {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  43 |     /// Create a new UI bridge
[INFO] [stdout]  44 |     pub fn new(session_id: impl Into<String>) -> (Self, mpsc::UnboundedReceiver<Value>, mpsc::UnboundedSender<Value>) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub async fn send_request(&self, method: impl Into<String>, params: Option<Value>) -> Result<Value, JsonRpcError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn send_notification(&self, method: impl Into<String>, params: Option<Value>) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub async fn on_request<F>(&self, method: impl Into<String>, handler: F)
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub async fn on_notification<F>(&self, method: impl Into<String>, handler: F)
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub async fn process_message(&self, message: Value) -> Result<(), String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub async fn start(&self) {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BridgeManager` is never constructed
[INFO] [stdout]    --> src/ui/bridge.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub struct BridgeManager {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `create_bridge`, `get_bridge`, and `remove_bridge` are never used
[INFO] [stdout]    --> src/ui/bridge.rs:228:12
[INFO] [stdout]     |
[INFO] [stdout] 227 | impl BridgeManager {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 228 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub async fn create_bridge(&self, session_id: impl Into<String>) -> UiBridge {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub async fn get_bridge(&self, session_id: &str) -> Option<UiBridge> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub async fn remove_bridge(&self, session_id: &str) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 29s
[INFO] running `Command { std: "docker" "inspect" "754260b3746df0aff5703da61c403652cd532fa12de8744783c91ef783464da3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "754260b3746df0aff5703da61c403652cd532fa12de8744783c91ef783464da3", kill_on_drop: false }`
[INFO] [stdout] 754260b3746df0aff5703da61c403652cd532fa12de8744783c91ef783464da3
