[INFO] cloning repository https://github.com/botiverse/cc-switch-napi
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/botiverse/cc-switch-napi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbotiverse%2Fcc-switch-napi", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbotiverse%2Fcc-switch-napi'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d95aea043470a4777b18e0a54478e6e5a14a1c09
[INFO] checking botiverse/cc-switch-napi against 79c0559184f27f4433a6fbc260b950d06d4a4889 for pr-162233-crater-rollup
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbotiverse%2Fcc-switch-napi" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-7-tc2/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-7-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/botiverse/cc-switch-napi
[INFO] finished tweaking git repo https://github.com/botiverse/cc-switch-napi
[INFO] tweaked toml for git repo https://github.com/botiverse/cc-switch-napi written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/botiverse/cc-switch-napi on toolchain 79c0559184f27f4433a6fbc260b950d06d4a4889
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+79c0559184f27f4433a6fbc260b950d06d4a4889" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/botiverse/cc-switch-napi 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" "+79c0559184f27f4433a6fbc260b950d06d4a4889" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7f30cba9eaa0278e5ea62ee235c27db88bfdd06760b632b65bfc43db73443cb2
[INFO] running `Command { std: "docker" "start" "7f30cba9eaa0278e5ea62ee235c27db88bfdd06760b632b65bfc43db73443cb2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7f30cba9eaa0278e5ea62ee235c27db88bfdd06760b632b65bfc43db73443cb2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7f30cba9eaa0278e5ea62ee235c27db88bfdd06760b632b65bfc43db73443cb2" "/opt/rustwide/cargo-home/bin/cargo" "+79c0559184f27f4433a6fbc260b950d06d4a4889" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7f30cba9eaa0278e5ea62ee235c27db88bfdd06760b632b65bfc43db73443cb2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7f30cba9eaa0278e5ea62ee235c27db88bfdd06760b632b65bfc43db73443cb2" "/opt/rustwide/cargo-home/bin/cargo" "+79c0559184f27f4433a6fbc260b950d06d4a4889" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling find-msvc-tools v0.1.11
[INFO] [stderr]     Checking futures-core v0.3.34
[INFO] [stderr]    Compiling pkg-config v0.3.34
[INFO] [stderr]     Checking futures-sink v0.3.34
[INFO] [stderr]     Checking futures-task v0.3.34
[INFO] [stderr]     Checking futures-io v0.3.34
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking writeable v0.6.4
[INFO] [stderr]     Checking litemap v0.8.3
[INFO] [stderr]    Compiling icu_properties_data v2.3.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.3.0
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling cc v1.4.3
[INFO] [stderr]     Checking futures-channel v0.3.34
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking http-body-util v0.1.5
[INFO] [stderr]     Checking simd-adler32 v0.3.10
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling napi-build v2.4.1
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]     Checking alloc-no-stdlib v2.0.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling unicode-general-category v1.1.0
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]     Checking crc-catalog v2.5.0
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling pest v2.9.0
[INFO] [stderr]     Checking crc v3.4.0
[INFO] [stderr]     Checking alloc-stdlib v0.2.4
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking webpki-roots v1.0.9
[INFO] [stderr]     Checking aho-corasick v1.1.5
[INFO] [stderr]     Checking time-core v0.1.9
[INFO] [stderr]     Checking num-conv v0.2.2
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]     Checking bumpalo v3.20.3
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]    Compiling rust_decimal v1.42.1
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]    Compiling zip v2.4.2
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking lzma-rs v0.3.0
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking zopfli v0.8.3
[INFO] [stderr]     Checking pbkdf2 v0.12.2
[INFO] [stderr]     Checking brotli-decompressor v4.0.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling lzma-sys v0.1.20
[INFO] [stderr]    Compiling bzip2-sys v0.1.13+1.0.8
[INFO] [stderr]    Compiling rquickjs-sys v0.8.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]     Checking regex-automata v0.4.18
[INFO] [stderr]     Checking bzip2 v0.5.2
[INFO] [stderr]    Compiling convert_case v0.11.0
[INFO] [stderr]     Checking xz2 v0.1.7
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking sha1 v0.10.7
[INFO] [stderr]    Compiling napi v3.12.1
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking libloading v0.9.0
[INFO] [stderr]     Checking deflate64 v0.1.12
[INFO] [stderr]     Checking arrayvec v0.7.8
[INFO] [stderr]     Checking constant_time_eq v0.3.1
[INFO] [stderr]    Compiling pest_meta v2.9.0
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling napi-derive-backend v6.1.2
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking napi-sys v3.3.0
[INFO] [stderr]     Checking brotli v7.0.0
[INFO] [stderr]     Checking time v0.3.55
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking uuid v1.24.1
[INFO] [stderr]     Checking regex v1.13.1
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]    Compiling pest_generator v2.9.0
[INFO] [stderr]     Checking tower-http v0.5.2
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling cc-switch-napi v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking rustc-hash v2.1.3
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]     Checking ctor v1.0.13
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]    Compiling pest_derive v2.9.0
[INFO] [stderr]    Compiling napi-derive v3.6.3
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling zerovec-derive v0.11.5
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]     Checking rustls-webpki v0.103.14
[INFO] [stderr]     Checking zerotrie v0.2.5
[INFO] [stderr]     Checking tokio v1.53.1
[INFO] [stderr]     Checking zerovec v0.11.7
[INFO] [stderr]     Checking futures-util v0.3.34
[INFO] [stderr]     Checking tinystr v0.8.4
[INFO] [stderr]     Checking potential_utf v0.1.6
[INFO] [stderr]     Checking icu_collections v2.3.0
[INFO] [stderr]     Checking icu_locale_core v2.3.0
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]     Checking icu_provider v2.3.0
[INFO] [stderr]     Checking icu_properties v2.3.0
[INFO] [stderr]     Checking icu_normalizer v2.3.0
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking json-five v0.3.1
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking rquickjs-core v0.8.1
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking futures-executor v0.3.34
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking futures v0.3.34
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking rquickjs v0.8.1
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking tokio-util v0.7.19
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking tower-http v0.6.11
[INFO] [stderr]     Checking h2 v0.4.16
[INFO] [stderr]     Checking rusqlite v0.31.0
[INFO] [stderr]     Checking hyper v1.11.0
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking hyper-rustls v0.27.9
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking cc-switch v5.10.2 (/opt/rustwide/workdir/vendor/cc-switch-cli/src-tauri)
[INFO] [stdout] warning: unused import: `dao::model_pricing::ModelPricingUpdate`
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/database/mod.rs:36:16
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub(crate) use dao::model_pricing::ModelPricingUpdate;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `fn(State<ProxyServerState>, HeaderMap, axum::Json<serde_json::Value>) -> impl futures::Future<Output = axum::http::Response<axum::body::Body>> {handle_messages}: axum::handler::Handler<(axum_core::extract::private::ViaRequest, State<_>, _, Json<Value>), _>`
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/proxy/server.rs:344:36
[INFO] [stdout]     |
[INFO] [stdout] 344 |             .route("/v1/messages", post(handlers::handle_messages))
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: which requires `impl futures::Future<Output = axum::http::Response<axum::body::Body>>: std::marker::Send`
[INFO] [stdout]     = note: which requires `{async fn body of handlers::handle_messages()}: std::marker::Send`
[INFO] [stdout]     = note: which requires `{coroutine witness@vendor/cc-switch-cli/src-tauri/src/proxy/handlers.rs:77:15: 79:2}: std::marker::Send`
[INFO] [stdout]     = note: which requires `impl futures::Future<Output = axum::http::Response<axum::body::Body>>: std::marker::Send`
[INFO] [stdout]     = note: which requires `{async fn body of handlers::handle_claude_request()}: std::marker::Send`
[INFO] [stdout]     = note: which requires `{coroutine witness@vendor/cc-switch-cli/src-tauri/src/proxy/handlers.rs:157:15: 396:2}: std::marker::Send`
[INFO] [stdout]     = note: which requires `impl futures::Future<Output = Result<ForwardedResponse<BufferedResponse>, ForwardFailure>>: std::marker::Send`
[INFO] [stdout]     = note: which requires `{async fn body of RequestForwarder::forward_buffered_response_detailed()}: std::marker::Send`
[INFO] [stdout]     = note: which requires `{coroutine witness@vendor/cc-switch-cli/src-tauri/src/proxy/forwarder.rs:498:70: 700:6}: std::marker::Send`
[INFO] [stdout]     = note: which requires `impl futures::Future<Output = Result<BufferedAttemptOutcome, BufferedRequestError>>: std::marker::Send`
[INFO] [stdout]     = note: which requires `{async fn body of RequestForwarder::send_buffered_request()}: std::marker::Send`
[INFO] [stdout]     = note: which requires `{coroutine witness@vendor/cc-switch-cli/src-tauri/src/proxy/forwarder.rs:912:63: 1095:6}: std::marker::Send`
[INFO] [stdout]     = note: which requires `impl futures::Future<Output = Result<RequestBuilder, ProxyError>>: std::marker::Send`
[INFO] [stdout]     = note: which requires `{async fn body of request_builder::<impl RequestForwarder>::prepare_request_with_client()}: std::marker::Send`
[INFO] [stdout]     = note: which requires `{coroutine witness@vendor/cc-switch-cli/src-tauri/src/proxy/forwarder/request_builder.rs:135:54: 393:6}: std::marker::Send`
[INFO] [stdout]     = note: and so on...
[INFO] [stdout]     = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]     = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`cc_switch_lib`)
[INFO] [stdout]     = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]     = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `ALL`, `COUNT`, `from_index`, and `index` are never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/claude_model_config.rs:14:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl ClaudeModelRole {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 13 |     /// TUI order preserves the existing three rows and appends the new roles.
[INFO] [stdout] 14 |     pub(crate) const ALL: [Self; 5] = [
[INFO] [stdout]    |                      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub(crate) const COUNT: usize = Self::ALL.len();
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] 22 |
[INFO] [stdout] 23 |     pub(crate) const fn from_index(index: usize) -> Option<Self> {
[INFO] [stdout]    |                         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub(crate) const fn index(self) -> usize {
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_claude_one_m_marker` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/claude_model_config.rs:87:15
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub(crate) fn split_claude_one_m_marker(value: &str) -> (String, bool) {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_claude_role_model` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/claude_model_config.rs:109:15
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub(crate) fn set_claude_role_model(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_or_remove_trimmed` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/claude_model_config.rs:147:4
[INFO] [stdout]     |
[INFO] [stdout] 147 | fn set_or_remove_trimmed(env: &mut Map<String, Value>, key: &str, value: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_api_format` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/codex_config.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl CodexCatalogToolProfile {
[INFO] [stdout]    | ---------------------------- associated function in this implementation
[INFO] [stdout] 39 |     pub fn from_api_format(api_format: Option<&str>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `strip_codex_provider_config_text` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/codex_config.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn strip_codex_provider_config_text(config_toml: &str) -> Result<String, AppError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_codex_third_party_config_toml` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/codex_config.rs:1517:8
[INFO] [stdout]      |
[INFO] [stdout] 1517 | pub fn build_codex_third_party_config_toml(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_codex_config_snippet` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/codex_config.rs:1545:8
[INFO] [stdout]      |
[INFO] [stdout] 1545 | pub fn update_codex_config_snippet(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_codex_goal_mode_enabled` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/codex_config.rs:1638:8
[INFO] [stdout]      |
[INFO] [stdout] 1638 | pub fn is_codex_goal_mode_enabled(config_text: &str) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_codex_goal_mode` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/codex_config.rs:1653:8
[INFO] [stdout]      |
[INFO] [stdout] 1653 | pub fn set_codex_goal_mode(config_text: &str, enabled: bool) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_codex_remote_compaction_enabled` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/codex_config.rs:1685:8
[INFO] [stdout]      |
[INFO] [stdout] 1685 | pub fn is_codex_remote_compaction_enabled(config_text: &str) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_codex_remote_compaction` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/codex_config.rs:1712:8
[INFO] [stdout]      |
[INFO] [stdout] 1712 | pub fn set_codex_remote_compaction(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finalize_codex_config_text` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/codex_config.rs:1754:4
[INFO] [stdout]      |
[INFO] [stdout] 1754 | fn finalize_codex_config_text(doc: toml_edit::DocumentMut) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_codex_config_wire_api_to_responses` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/codex_config.rs:1769:8
[INFO] [stdout]      |
[INFO] [stdout] 1769 | pub fn normalize_codex_config_wire_api_to_responses(config_text: &str) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `non_empty` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/codex_config.rs:1800:4
[INFO] [stdout]      |
[INFO] [stdout] 1800 | fn non_empty(value: &str) -> Option<&str> {
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OFFICIAL_UNIFY_RESTORE_BACKUP_NAME` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/codex_history_migration.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const OFFICIAL_UNIFY_RESTORE_BACKUP_NAME: &str = "codex-official-history-unify-restore-v1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STATE_DB_ID_CHUNK` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/codex_history_migration.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const STATE_DB_ID_CHUNK: usize = 500;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CodexOfficialHistoryRestoreOutcome` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/codex_history_migration.rs:314:12
[INFO] [stdout]     |
[INFO] [stdout] 314 | pub struct CodexOfficialHistoryRestoreOutcome {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `official_history_unify_backup_parent` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/codex_history_migration.rs:320:4
[INFO] [stdout]     |
[INFO] [stdout] 320 | fn official_history_unify_backup_parent() -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_codex_official_history_unify_backup` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/codex_history_migration.rs:326:8
[INFO] [stdout]     |
[INFO] [stdout] 326 | pub fn has_codex_official_history_unify_backup() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_official_history_unify_backup_for_dir` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/codex_history_migration.rs:333:4
[INFO] [stdout]     |
[INFO] [stdout] 333 | fn has_official_history_unify_backup_for_dir(ledger_parent: &Path, codex_dir_key: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `restore_codex_official_history_from_backups` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/codex_history_migration.rs:345:8
[INFO] [stdout]     |
[INFO] [stdout] 345 | pub fn restore_codex_official_history_from_backups(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `restore_codex_official_history_inner` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/codex_history_migration.rs:363:4
[INFO] [stdout]     |
[INFO] [stdout] 363 | fn restore_codex_official_history_inner(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_official_ledger` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/codex_history_migration.rs:415:4
[INFO] [stdout]     |
[INFO] [stdout] 415 | fn collect_official_ledger(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `backup_generation_matches_dir` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/codex_history_migration.rs:447:4
[INFO] [stdout]     |
[INFO] [stdout] 447 | fn backup_generation_matches_dir(generation: &Path, codex_dir_key: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_official_session_ids_from_backup` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/codex_history_migration.rs:462:4
[INFO] [stdout]     |
[INFO] [stdout] 462 | fn collect_official_session_ids_from_backup(path: &Path, session_ids: &mut HashSet<String>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_official_thread_ids_from_backup` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/codex_history_migration.rs:491:4
[INFO] [stdout]     |
[INFO] [stdout] 491 | fn collect_official_thread_ids_from_backup(db_path: &Path, thread_ids: &mut BTreeSet<String>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_files_with_extension` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/codex_history_migration.rs:521:4
[INFO] [stdout]     |
[INFO] [stdout] 521 | fn collect_files_with_extension(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rewrite_codex_session_meta_line_for_restore` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/codex_history_migration.rs:544:4
[INFO] [stdout]     |
[INFO] [stdout] 544 | fn rewrite_codex_session_meta_line_for_restore(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `restore_codex_state_db_official_threads` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/codex_history_migration.rs:570:4
[INFO] [stdout]     |
[INFO] [stdout] 570 | fn restore_codex_state_db_official_threads(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModelPricingUpdate` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/database/dao/model_pricing.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct ModelPricingUpdate {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `normalized` are never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/database/dao/model_pricing.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl ModelPricingUpdate {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 21 |     pub(crate) fn new(
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn normalized(&self) -> Result<Self, AppError> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `upsert_model_pricing`, `delete_model_pricing`, `remember_deleted_model_pricing_on_conn`, `forget_deleted_model_pricing_on_conn`, and `save_deleted_model_pricing_ids_on_conn` are never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/database/dao/model_pricing.rs:64:19
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl Database {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  64 |     pub(crate) fn upsert_model_pricing(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub(crate) fn delete_model_pricing(&self, model_id: &str) -> Result<bool, AppError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn remember_deleted_model_pricing_on_conn(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn forget_deleted_model_pricing_on_conn(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     fn save_deleted_model_pricing_ids_on_conn(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_pricing_field` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/database/dao/model_pricing.rs:195:4
[INFO] [stdout]     |
[INFO] [stdout] 195 | fn required_pricing_field(field: &str, value: String) -> Result<String, AppError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pricing_decimal_field` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/database/dao/model_pricing.rs:203:4
[INFO] [stdout]     |
[INFO] [stdout] 203 | fn pricing_decimal_field(field: &str, value: String) -> Result<String, AppError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_input_capability_from_settings` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/model_capabilities.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub(crate) fn image_input_capability_from_settings(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `declared_model_image_support` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/model_capabilities.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn declared_model_image_support(settings: &Value, model: &str) -> Option<bool> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `declared_model_image_support_in_value` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/model_capabilities.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn declared_model_image_support_in_value(value: &Value, model: &str) -> Option<bool> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `explicit_image_support` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/model_capabilities.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn explicit_image_support(entry: &Value) -> Option<bool> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `input_modalities_support_image` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/model_capabilities.rs:156:4
[INFO] [stdout]     |
[INFO] [stdout] 156 | fn input_modalities_support_image(value: &Value) -> Option<bool> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `model_entry_matches` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/model_capabilities.rs:165:4
[INFO] [stdout]     |
[INFO] [stdout] 165 | fn model_entry_matches(entry: &Value, key: Option<&str>, model: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `model_ids_match` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/model_capabilities.rs:173:4
[INFO] [stdout]     |
[INFO] [stdout] 173 | fn model_ids_match(candidate: &str, model: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPENCLAW_DEFAULT_API_PROTOCOL` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/openclaw_config.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const OPENCLAW_DEFAULT_API_PROTOCOL: &str = "openai-completions";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPENCLAW_DEFAULT_USER_AGENT` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/openclaw_config.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const OPENCLAW_DEFAULT_USER_AGENT: &str =
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPENCLAW_API_PROTOCOLS` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/openclaw_config.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const OPENCLAW_API_PROTOCOLS: [&str; 5] = [
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenClawAgentsDefaults` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/openclaw_config.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub struct OpenClawAgentsDefaults {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenClawEnvConfig` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/openclaw_config.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct OpenClawEnvConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenClawToolsConfig` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/openclaw_config.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct OpenClawToolsConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scan_openclaw_config_health` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/openclaw_config.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub fn scan_openclaw_config_health() -> Result<Vec<OpenClawHealthWarning>, AppError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_legacy_timeout` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/openclaw_config.rs:689:4
[INFO] [stdout]     |
[INFO] [stdout] 689 | fn remove_legacy_timeout(defaults_value: &mut Value) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_agents_defaults` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/openclaw_config.rs:919:8
[INFO] [stdout]     |
[INFO] [stdout] 919 | pub fn get_agents_defaults() -> Result<Option<OpenClawAgentsDefaults>, AppError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_agents_defaults` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/openclaw_config.rs:934:8
[INFO] [stdout]     |
[INFO] [stdout] 934 | pub fn set_agents_defaults(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_env_config` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/openclaw_config.rs:956:8
[INFO] [stdout]     |
[INFO] [stdout] 956 | pub fn get_env_config() -> Result<OpenClawEnvConfig, AppError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_env_config` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/openclaw_config.rs:969:8
[INFO] [stdout]     |
[INFO] [stdout] 969 | pub fn set_env_config(env: &OpenClawEnvConfig) -> Result<OpenClawWriteOutcome, AppError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_tools_config` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/openclaw_config.rs:974:8
[INFO] [stdout]     |
[INFO] [stdout] 974 | pub fn get_tools_config() -> Result<OpenClawToolsConfig, AppError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_tools_config` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/openclaw_config.rs:990:8
[INFO] [stdout]     |
[INFO] [stdout] 990 | pub fn set_tools_config(tools: &OpenClawToolsConfig) -> Result<OpenClawWriteOutcome, AppError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPENCODE_DEFAULT_NPM` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/opencode_config.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const OPENCODE_DEFAULT_NPM: &str = "@ai-sdk/openai-compatible";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLAUDE_OPUS_MODEL` is never used
[INFO] [stdout]  --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) const CLAUDE_OPUS_MODEL: &str = "claude-opus-5";
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLAUDE_OPUS_NAME` is never used
[INFO] [stdout]  --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) const CLAUDE_OPUS_NAME: &str = "Claude Opus 5";
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLAUDE_SONNET_MODEL` is never used
[INFO] [stdout]  --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) const CLAUDE_SONNET_MODEL: &str = "claude-sonnet-5";
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLAUDE_SONNET_NAME` is never used
[INFO] [stdout]  --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) const CLAUDE_SONNET_NAME: &str = "Claude Sonnet 5";
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLAUDE_HAIKU_MODEL` is never used
[INFO] [stdout]  --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) const CLAUDE_HAIKU_MODEL: &str = "claude-haiku-4-5";
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLAUDE_HAIKU_DATED_MODEL` is never used
[INFO] [stdout]  --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(crate) const CLAUDE_HAIKU_DATED_MODEL: &str = "claude-haiku-4-5-20251001";
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLAUDE_HAIKU_NAME` is never used
[INFO] [stdout]  --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) const CLAUDE_HAIKU_NAME: &str = "Claude Haiku 4.5";
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CODEX_DEFAULT_MODEL_NAME` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(crate) const CODEX_DEFAULT_MODEL_NAME: &str = "GPT-5.6 Sol";
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CODEX_OAUTH_FAST_MODEL` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) const CODEX_OAUTH_FAST_MODEL: &str = "gpt-5.6-luna";
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GEMINI_DEFAULT_MODEL` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) const GEMINI_DEFAULT_MODEL: &str = "gemini-3.6-flash";
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SponsorModelFamily` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:19:17
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) enum SponsorModelFamily {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `primary_model`, `primary_model_name`, and `primary_context_window` are never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:26:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl SponsorModelFamily {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] 26 |     pub(crate) const fn primary_model(self) -> &'static str {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub(crate) const fn primary_model_name(self) -> &'static str {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(crate) const fn primary_context_window(self) -> &'static str {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sponsor_model_family` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) fn sponsor_model_family(preset_id: &str) -> Option<SponsorModelFamily> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `codex_oauth_claude_env` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:59:15
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub(crate) fn codex_oauth_claude_env() -> Value {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sponsor_opencode_settings` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub(crate) fn sponsor_opencode_settings(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sponsor_hermes_models` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:108:15
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub(crate) fn sponsor_hermes_models(family: SponsorModelFamily) -> Vec<Value> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sponsor_openclaw_models` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:129:15
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub(crate) fn sponsor_openclaw_models(family: SponsorModelFamily) -> Vec<Value> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insert_named_model` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:178:4
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn insert_named_model(models: &mut Map<String, Value>, id: &str, name: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `named_model` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/provider_preset_models.rs:182:4
[INFO] [stdout]     |
[INFO] [stdout] 182 | fn named_model(id: &str, name: &str) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SponsorProviderPreset` is never constructed
[INFO] [stdout]  --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub(crate) struct SponsorProviderPreset {
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLAUDE_API` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) const CLAUDE_API: SponsorProviderPreset = SponsorProviderPreset {
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PACKY_CODE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:34:18
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub(crate) const PACKY_CODE: SponsorProviderPreset = SponsorProviderPreset {
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CUBENCE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:50:18
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) const CUBENCE: SponsorProviderPreset = SponsorProviderPreset {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPENMODEL` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:66:18
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub(crate) const OPENMODEL: SponsorProviderPreset = SponsorProviderPreset {
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RUN_API` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:82:18
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub(crate) const RUN_API: SponsorProviderPreset = SponsorProviderPreset {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AI_CODE_MIRROR` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:98:18
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub(crate) const AI_CODE_MIRROR: SponsorProviderPreset = SponsorProviderPreset {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DDS` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:114:18
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub(crate) const DDS: SponsorProviderPreset = SponsorProviderPreset {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `QINIU` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:130:18
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub(crate) const QINIU: SponsorProviderPreset = SponsorProviderPreset {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FENNO` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:146:18
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub(crate) const FENNO: SponsorProviderPreset = SponsorProviderPreset {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SPONSOR_PROVIDER_PRESETS` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:163:18
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub(crate) const SPONSOR_PROVIDER_PRESETS: [SponsorProviderPreset; 9] = [
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLAUDE_SPONSOR_PRESETS` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:175:7
[INFO] [stdout]     |
[INFO] [stdout] 175 | const CLAUDE_SPONSOR_PRESETS: [SponsorProviderPreset; 9] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CODEX_SPONSOR_PRESETS` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:186:7
[INFO] [stdout]     |
[INFO] [stdout] 186 | const CODEX_SPONSOR_PRESETS: [SponsorProviderPreset; 8] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GEMINI_SPONSOR_PRESETS` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:196:7
[INFO] [stdout]     |
[INFO] [stdout] 196 | const GEMINI_SPONSOR_PRESETS: [SponsorProviderPreset; 5] =
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ADDITIVE_SPONSOR_PRESETS` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:198:7
[INFO] [stdout]     |
[INFO] [stdout] 198 | const ADDITIVE_SPONSOR_PRESETS: [SponsorProviderPreset; 7] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sponsor_provider_preset` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:208:15
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub(crate) fn sponsor_provider_preset(id: &str) -> Option<SponsorProviderPreset> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sponsor_provider_presets_for_app` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/provider_preset_sponsors.rs:215:15
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub(crate) fn sponsor_provider_presets_for_app(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_client_for_provider` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/proxy/http_client.rs:282:8
[INFO] [stdout]     |
[INFO] [stdout] 282 | pub fn build_client_for_provider(proxy_config: Option<&ProviderProxyConfig>) -> Option<Client> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reasoning_item` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/proxy/providers/codex_responses_sse.rs:226:15
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub(crate) fn reasoning_item(item_id: &str, text: &str) -> Value {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reasoning_close` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/proxy/providers/codex_responses_sse.rs:236:15
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub(crate) fn reasoning_close(output_index: u32, item_id: &str, text: &str) -> (Vec<Bytes>, Value) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `custom_tool_call_input_delta` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/proxy/providers/codex_responses_sse.rs:320:15
[INFO] [stdout]     |
[INFO] [stdout] 320 | pub(crate) fn custom_tool_call_input_delta(output_index: u32, item_id: &str, delta: &str) -> Bytes {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `anthropic_to_gemini` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/proxy/providers/transform_gemini.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn anthropic_to_gemini(body: Value) -> Result<Value, ProxyError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InlineImagesOnly` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/proxy/tool_media.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) enum ToolMediaScope {
[INFO] [stdout]    |                 -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 27 |     InlineImagesOnly,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ToolMediaScope` 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 `tool_output_contains_media` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/proxy/tool_media.rs:185:15
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub(crate) fn tool_output_contains_media(value: &Value, scope: ToolMediaScope) -> bool {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `strip_media_from_tool_value` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/proxy/tool_media.rs:196:15
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub(crate) fn strip_media_from_tool_value(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tool_output_contains_media_at_depth` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/proxy/tool_media.rs:270:4
[INFO] [stdout]     |
[INFO] [stdout] 270 | fn tool_output_contains_media_at_depth(value: &Value, scope: ToolMediaScope, depth: usize) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CodexHistoryToggleOutcome` is never constructed
[INFO] [stdout]  --> vendor/cc-switch-cli/src-tauri/src/services/codex_history.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct CodexHistoryToggleOutcome {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_unified_session_history_enabled` is never used
[INFO] [stdout]  --> vendor/cc-switch-cli/src-tauri/src/services/codex_history.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn set_unified_session_history_enabled(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_unified_session_history_enabled_with` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/codex_history.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn set_unified_session_history_enabled_with(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rollback_codex_history_settings` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/codex_history.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn rollback_codex_history_settings(existing: &crate::settings::AppSettings) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `get_quota` and `get_models` are never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/codex_oauth.rs:170:18
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl CodexOAuthService {
[INFO] [stdout]     | ---------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub async fn get_quota(account_id: Option<&str>) -> SubscriptionQuota {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub async fn get_models(
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CODEX_OAUTH_MODELS_URL` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/codex_oauth_models.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const CODEX_OAUTH_MODELS_URL: &str = "https://chatgpt.com/backend-api/codex/models";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CODEX_OAUTH_FETCH_TIMEOUT_SECS` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/codex_oauth_models.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const CODEX_OAUTH_FETCH_TIMEOUT_SECS: u64 = 15;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERROR_BODY_MAX_CHARS` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/codex_oauth_models.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const ERROR_BODY_MAX_CHARS: usize = 512;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CODEX_OAUTH_CLIENT_VERSION` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/codex_oauth_models.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const CODEX_OAUTH_CLIENT_VERSION: &str = env!("CARGO_PKG_VERSION");
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch_models_with_token` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/codex_oauth_models.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub async fn fetch_models_with_token(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_models` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/codex_oauth_models.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn parse_models(value: Value) -> Vec<FetchedModel> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_model_entry` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/codex_oauth_models.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn push_model_entry(models: &mut Vec<FetchedModel>, entry: &Value, fallback_id: Option<&str>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_field` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/codex_oauth_models.rs:110:4
[INFO] [stdout]     |
[INFO] [stdout] 110 | fn string_field(obj: &serde_json::Map<String, Value>, keys: &[&str]) -> Option<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `truncate_body` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/codex_oauth_models.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn truncate_body(body: String) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FetchedModel` is never constructed
[INFO] [stdout]  --> vendor/cc-switch-cli/src-tauri/src/services/model_fetch.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct FetchedModel {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/services/provider/mod.rs:1476:19
[INFO] [stdout]      |
[INFO] [stdout]  216 | impl ProviderService {
[INFO] [stdout]      | -------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1476 |     pub(crate) fn remove_common_config_from_settings_for_preview(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1488 |     pub(crate) fn apply_common_config_to_settings_for_preview(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1500 |     pub(crate) fn is_sensitive_common_config_key_for_preview(name: &str) -> bool {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1504 |     pub(crate) fn validate_common_config_snippet_for_preview(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1511 |     pub(crate) fn settings_contain_common_config_for_preview(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1892 |     pub(crate) fn sync_openclaw_providers_from_live(state: &AppState) -> Result<(), AppError> {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3335 |     pub(crate) fn build_effective_live_snapshot_from_state(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3359 |     pub(crate) fn get_provider(
[INFO] [stdout]      |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `capture_codex_temp_launch_snapshot` is never used
[INFO] [stdout]  --> vendor/cc-switch-cli/src-tauri/src/services/provider/codex.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | impl ProviderService {
[INFO] [stdout]   | -------------------- associated function in this implementation
[INFO] [stdout] 6 |     pub(crate) fn capture_codex_temp_launch_snapshot(
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sync_openclaw_providers_from_live` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/provider/live.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub fn sync_openclaw_providers_from_live(state: &AppState) -> Result<usize, AppError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_toml_live` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/provider/live_merge.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn merge_toml_live(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_toml_with_base_live` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/provider/live_merge.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub fn merge_toml_with_base_live(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_toml_live` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/provider/live_merge.rs:199:4
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn parse_toml_live(text: &str, target: &str) -> Result<DocumentMut, AppError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_toml_item` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/provider/live_merge.rs:205:4
[INFO] [stdout]     |
[INFO] [stdout] 205 | fn merge_toml_item(local: &mut Item, incoming: &Item) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_toml_item_with_base` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/provider/live_merge.rs:219:4
[INFO] [stdout]     |
[INFO] [stdout] 219 | fn merge_toml_item_with_base(local: &mut Item, base: Option<&Item>, incoming: &Item) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_toml_table_like` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/provider/live_merge.rs:239:4
[INFO] [stdout]     |
[INFO] [stdout] 239 | fn merge_toml_table_like(local: &mut dyn TableLike, incoming: &dyn TableLike) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_toml_table_like_with_base` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/provider/live_merge.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | fn merge_toml_table_like_with_base(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toml_items_equal` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/provider/live_merge.rs:296:4
[INFO] [stdout]     |
[INFO] [stdout] 296 | fn toml_items_equal(left: &Item, right: &Item) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toml_tables_equal` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/provider/live_merge.rs:311:4
[INFO] [stdout]     |
[INFO] [stdout] 311 | fn toml_tables_equal(left: &dyn TableLike, right: &dyn TableLike) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `publish_runtime_session_if_needed` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/proxy.rs:883:19
[INFO] [stdout]     |
[INFO] [stdout] 160 | impl ProxyService {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 883 |     pub(crate) fn publish_runtime_session_if_needed(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionCostIdentity` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/mod.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) struct SessionCostIdentity {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QueryControl` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/mod.rs:34:19
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub(crate) struct QueryControl {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `is_superseded`, `deadline_exceeded`, `is_cancelled`, `install_progress_handler`, and `clear_progress_handler` are never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/mod.rs:41:19
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl QueryControl {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 41 |     pub(crate) fn is_superseded(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub(crate) fn deadline_exceeded(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub(crate) fn is_cancelled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     fn install_progress_handler(&self, conn: &rusqlite::Connection) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     fn clear_progress_handler(conn: &rusqlite::Connection) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unambiguous_identities` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/mod.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn unambiguous_identities(identities: &[SessionCostIdentity]) -> Vec<SessionCostIdentity> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `project_page` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/mod.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub(crate) fn project_page(
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `project` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/hermes.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(super) fn project(
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `project_connection` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/hermes.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn project_connection(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `project_snapshot` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/hermes.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn project_snapshot(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `query_sessions` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/hermes.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn query_sessions(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UsageBuckets` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/hermes.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | struct UsageBuckets {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_empty` and `into_summary` are never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/hermes.rs:175:8
[INFO] [stdout]     |
[INFO] [stdout] 174 | impl UsageBuckets {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 175 |     fn is_empty(self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     fn into_summary(self) -> SessionUsageSummary {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `table_exists` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/hermes.rs:193:4
[INFO] [stdout]     |
[INFO] [stdout] 193 | fn table_exists(conn: &Connection, table: &str) -> Result<bool, AppError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `table_columns` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/hermes.rs:204:4
[INFO] [stdout]     |
[INFO] [stdout] 204 | fn table_columns(conn: &Connection, table: &str) -> Result<HashSet<String>, AppError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `valid_tokens` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/hermes.rs:215:4
[INFO] [stdout]     |
[INFO] [stdout] 215 | fn valid_tokens(value: Option<i64>) -> Option<u64> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `valid_cost` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/hermes.rs:219:4
[INFO] [stdout]     |
[INFO] [stdout] 219 | fn valid_cost(value: Option<f64>) -> Option<f64> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Aggregate` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/projection.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Aggregate {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AggregateQuery` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/projection.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct AggregateQuery {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `project_main_connection` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/projection.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub(crate) fn project_main_connection(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `query_aggregates` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/projection.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn query_aggregates(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_aggregate_query` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/projection.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn build_aggregate_query(identities: &[SessionCostIdentity]) -> AggregateQuery {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `canonical_decimal_text_sql` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/projection.rs:240:4
[INFO] [stdout]     |
[INFO] [stdout] 240 | fn canonical_decimal_text_sql(expression: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nonnegative` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/session_cost/projection.rs:276:4
[INFO] [stdout]     |
[INFO] [stdout] 276 | fn nonnegative(value: i64) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rebuild_codex_usage` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/session_usage.rs:303:15
[INFO] [stdout]     |
[INFO] [stdout] 303 | pub(crate) fn rebuild_codex_usage(db: &Database) -> Result<SessionSyncResult, AppError> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `snapshot` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/session_usage.rs:281:12
[INFO] [stdout]     |
[INFO] [stdout] 281 |     pub fn snapshot() -> Option<(u32, u32)> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_codex_replay_caches` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/session_usage_codex.rs:196:15
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub(crate) fn clear_codex_replay_caches() {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_codex_usage` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/session_usage_codex.rs:352:19
[INFO] [stdout]     |
[INFO] [stdout] 351 | impl Database {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 352 |     pub(crate) fn reset_codex_usage(&self) -> Result<(), AppError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fresh_input_tokens` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/sql_helpers.rs:29:15
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub(crate) fn fresh_input_tokens(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_restore_mutation_guard_bypass_env` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/services/state_coordination.rs:84:15
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub(crate) fn clear_restore_mutation_guard_bypass_env() {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `extract_claude_key` and `extract_codex_key` are never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/services/stream_check/provider_extract.rs:116:19
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl StreamCheckService {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub(crate) fn extract_claude_key(provider: &Provider) -> Option<String> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub(crate) fn extract_codex_key(provider: &Provider) -> Option<String> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `backfill_missing_usage_costs_for_model` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/services/usage_stats.rs:1522:19
[INFO] [stdout]      |
[INFO] [stdout] 1514 | impl Database {
[INFO] [stdout]      | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1522 |     pub(crate) fn backfill_missing_usage_costs_for_model(
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `model_id` is never read
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/services/usage_stats.rs:1748:9
[INFO] [stdout]      |
[INFO] [stdout] 1747 | pub(crate) struct ModelPricingMatch {
[INFO] [stdout]      |                   ----------------- field in this struct
[INFO] [stdout] 1748 |     pub model_id: String,
[INFO] [stdout]      |         ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `ModelPricingMatch` 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 `SessionMessage` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct SessionMessage {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionMessageBatch` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct SessionMessageBatch {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SESSION_MESSAGE_PREVIEW_MAX_MESSAGES` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:109:11
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub const SESSION_MESSAGE_PREVIEW_MAX_MESSAGES: usize = 200;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SESSION_MESSAGE_PREVIEW_MAX_BODY_BYTES` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:110:11
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub const SESSION_MESSAGE_PREVIEW_MAX_BODY_BYTES: usize = 1024 * 1024;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SESSION_MESSAGE_PREVIEW_MAX_MESSAGE_BYTES` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:111:11
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub const SESSION_MESSAGE_PREVIEW_MAX_MESSAGE_BYTES: usize = 16 * 1024;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SESSION_MESSAGE_PREVIEW_MAX_ROLE_BYTES` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:112:18
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub(crate) const SESSION_MESSAGE_PREVIEW_MAX_ROLE_BYTES: usize = 256;
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionMessageBatchBuilder` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:114:19
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub(crate) struct SessionMessageBatchBuilder {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push`, `mark_truncated`, `is_full`, and `finish` are never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:120:19
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl SessionMessageBatchBuilder {
[INFO] [stdout]     | ------------------------------- associated items in this implementation
[INFO] [stdout] 120 |     pub(crate) fn new() -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub(crate) fn push(&mut self, mut message: SessionMessage) -> ControlFlow<()> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub(crate) fn mark_truncated(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub(crate) fn is_full(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub(crate) fn finish(self) -> SessionMessageBatch {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_utf8_bounded` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:184:15
[INFO] [stdout]     |
[INFO] [stdout] 184 | pub(crate) fn append_utf8_bounded(output: &mut String, input: &str, max_bytes: usize) -> bool {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sort_by_recent` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:201:15
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub(crate) fn sort_by_recent(sessions: &mut [SessionMeta]) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCAN_CACHE_FIRST_PAINT_LIMIT` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:219:18
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub(crate) const SCAN_CACHE_FIRST_PAINT_LIMIT: usize = 101;
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_sessions_for_provider_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:228:15
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub(crate) fn stream_sessions_for_provider_cancellable(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_fresh_session_manifest` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:267:15
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub(crate) fn build_fresh_session_manifest(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_sessions_in` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:349:8
[INFO] [stdout]     |
[INFO] [stdout] 349 | pub fn search_sessions_in(sessions: &[SessionMeta], query: &str) -> Vec<SessionSearchHit> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_sessions_in_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:356:15
[INFO] [stdout]     |
[INFO] [stdout] 356 | pub(crate) fn search_sessions_in_cancellable(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_provider_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:419:4
[INFO] [stdout]     |
[INFO] [stdout] 419 | fn search_provider_cancellable(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_file_provider` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:444:4
[INFO] [stdout]     |
[INFO] [stdout] 444 | fn search_file_provider<F>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_messages` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:468:8
[INFO] [stdout]     |
[INFO] [stdout] 468 | pub fn load_messages(provider_id: &str, source_path: &str) -> Result<SessionMessageBatch, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_messages_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:472:15
[INFO] [stdout]     |
[INFO] [stdout] 472 | pub(crate) fn load_messages_cancellable(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_session` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:497:8
[INFO] [stdout]     |
[INFO] [stdout] 497 | pub fn delete_session(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PurgedSessionManifests` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:518:19
[INFO] [stdout]     |
[INFO] [stdout] 518 | pub(crate) struct PurgedSessionManifests {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `purge_deleted_session_from_local_caches` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:522:15
[INFO] [stdout]     |
[INFO] [stdout] 522 | pub(crate) fn purge_deleted_session_from_local_caches(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_session_with_root` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:547:4
[INFO] [stdout]     |
[INFO] [stdout] 547 | fn delete_session_with_root(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `provider_root` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:574:4
[INFO] [stdout]     |
[INFO] [stdout] 574 | fn provider_root(provider_id: &str) -> Result<PathBuf, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `canonicalize_existing_path` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/mod.rs:588:4
[INFO] [stdout]     |
[INFO] [stdout] 588 | fn canonicalize_existing_path(path: &Path, label: &str) -> Result<PathBuf, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileScanTarget` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct FileScanTarget {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STREAM_SCAN_BATCH_SIZE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:42:18
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub(crate) const STREAM_SCAN_BATCH_SIZE: usize = 128;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StreamScanStop` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub(crate) enum StreamScanStop {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IntoStreamParseResult` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:54:18
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub(crate) trait IntoStreamParseResult {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamScanStats` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:72:19
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub(crate) struct StreamScanStats {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `merge` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:83:19
[INFO] [stdout]    |
[INFO] [stdout] 82 | impl StreamScanStats {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 83 |     pub(crate) fn merge(&mut self, other: Self) {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CachedScanRow` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub struct CachedScanRow {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionScanCacheEntry` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub struct SessionScanCacheEntry {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stat_target` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub fn stat_target(path: &Path) -> Option<FileScanTarget> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stat_target_strict` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:125:15
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub(crate) fn stat_target_strict(path: &Path) -> std::io::Result<Option<FileScanTarget>> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stable_source_mtime_ns` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:148:4
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn stable_source_mtime_ns(before: &FileScanTarget, after: Option<&FileScanTarget>) -> Option<i64> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mix_sibling_into_fingerprint_strict` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:157:15
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub(crate) fn mix_sibling_into_fingerprint_strict(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `visit_targets_recursive_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:180:15
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub(crate) fn visit_targets_recursive_cancellable(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `visit_targets_recursive_inner` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:189:4
[INFO] [stdout]     |
[INFO] [stdout] 189 | fn visit_targets_recursive_inner(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `visit_target_entry_flat` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:266:4
[INFO] [stdout]     |
[INFO] [stdout] 266 | fn visit_target_entry_flat(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `visit_targets_flat_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:309:15
[INFO] [stdout]     |
[INFO] [stdout] 309 | pub(crate) fn visit_targets_flat_cancellable(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_file_provider_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:356:15
[INFO] [stdout]     |
[INFO] [stdout] 356 | pub(crate) fn stream_file_provider_cancellable<F, O, C, R, W>(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_stream_batch` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:471:4
[INFO] [stdout]     |
[INFO] [stdout] 471 | fn process_stream_batch<F, O, C, R>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `same_fingerprint` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:654:4
[INFO] [stdout]     |
[INFO] [stdout] 654 | fn same_fingerprint(left: &FileScanTarget, right: &FileScanTarget) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `authoritative_restat` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:660:4
[INFO] [stdout]     |
[INFO] [stdout] 660 | fn authoritative_restat<R>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cached_meta_for_target` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:680:4
[INFO] [stdout]     |
[INFO] [stdout] 680 | fn cached_meta_for_target<C>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_targets_completed_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/cache.rs:706:4
[INFO] [stdout]     |
[INFO] [stdout] 706 | fn parse_targets_completed_cancellable<F, O, P>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `POSIX_KEY_PREFIX` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const POSIX_KEY_PREFIX: &str = "posix:";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOWS_KEY_PREFIX` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const WINDOWS_KEY_PREFIX: &str = "windows:";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SessionProjectScope` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) enum SessionProjectScope {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `matches` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:38:19
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl SessionProjectScope {
[INFO] [stdout]    | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub(crate) fn matches(&self, project_dir: Option<&str>) -> bool {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionViewSpec` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:73:19
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub(crate) struct SessionViewSpec {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `is_base_view` are never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:79:19
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl SessionViewSpec {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 79 |     pub(crate) fn new(project: SessionProjectScope, query: impl Into<String>) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub(crate) fn is_base_view(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionProjectSummary` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:98:19
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub(crate) struct SessionProjectSummary {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnknownProjectSummary` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:107:19
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub(crate) struct UnknownProjectSummary {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionProjectCatalog` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:113:19
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub(crate) struct SessionProjectCatalog {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `project_position` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:123:19
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl SessionProjectCatalog {
[INFO] [stdout]     | -------------------------- method in this implementation
[INFO] [stdout] 123 |     pub(crate) fn project_position(&self, normalized_path: &str) -> Option<usize> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aggregate_project_directories` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:138:15
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub(crate) fn aggregate_project_directories(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `project_path_contains_query` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:209:15
[INFO] [stdout]     |
[INFO] [stdout] 209 | pub(crate) fn project_path_contains_query(path: &str, query_lower: &str) -> bool {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_unknown` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:219:4
[INFO] [stdout]     |
[INFO] [stdout] 219 | fn update_unknown(summary: &mut UnknownProjectSummary, latest_at: Option<i64>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `latest_timestamp` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:224:4
[INFO] [stdout]     |
[INFO] [stdout] 224 | fn latest_timestamp(current: Option<i64>, candidate: Option<i64>) -> Option<i64> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_not_cancelled` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:233:4
[INFO] [stdout]     |
[INFO] [stdout] 233 | fn ensure_not_cancelled(is_cancelled: &(dyn Fn() -> bool + Sync)) -> Result<(), ManifestError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_project_path` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:246:15
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub(crate) fn normalize_project_path(raw: &str) -> Option<String> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `looks_like_windows_path` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:259:4
[INFO] [stdout]     |
[INFO] [stdout] 259 | fn looks_like_windows_path(path: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_posix_path` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:267:4
[INFO] [stdout]     |
[INFO] [stdout] 267 | fn normalize_posix_path(path: &str) -> Option<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_windows_path` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:283:4
[INFO] [stdout]     |
[INFO] [stdout] 283 | fn normalize_windows_path(path: &str) -> Option<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_components` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/project_scope.rs:321:4
[INFO] [stdout]     |
[INFO] [stdout] 321 | fn normalize_components<'a>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_sessions_cancellable` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/claude.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) fn stream_sessions_cancellable(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_messages_cancellable` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/claude.rs:54:15
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub(crate) fn load_messages_cancellable(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_transcript_line` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/claude.rs:72:15
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub(crate) fn parse_transcript_line(line: &str) -> Option<SessionMessage> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_session` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/claude.rs:181:8
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub fn delete_session(_root: &Path, path: &Path, session_id: &str) -> Result<bool, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_session` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/claude.rs:216:4
[INFO] [stdout]     |
[INFO] [stdout] 216 | fn parse_session(path: &Path) -> Option<SessionMeta> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_session_authoritative` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/claude.rs:220:4
[INFO] [stdout]     |
[INFO] [stdout] 220 | fn parse_session_authoritative(path: &Path) -> Result<Option<SessionMeta>, cache::StreamScanStop> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_session_lines` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/claude.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn parse_session_lines(path: &Path, head: &[String], tail: &[String]) -> Option<SessionMeta> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_agent_session` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/claude.rs:369:4
[INFO] [stdout]     |
[INFO] [stdout] 369 | fn is_agent_session(path: &Path) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `infer_session_id_from_filename` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/claude.rs:376:4
[INFO] [stdout]     |
[INFO] [stdout] 376 | fn infer_session_id_from_filename(path: &Path) -> Option<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_path_if_exists` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/claude.rs:382:4
[INFO] [stdout]     |
[INFO] [stdout] 382 | fn remove_path_if_exists(path: &Path) -> std::io::Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CODEX_SESSION_INDEX_FILENAME` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | const CODEX_SESSION_INDEX_FILENAME: &str = "session_index.jsonl";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TITLE_RUN_SPILL_ROWS` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const TITLE_RUN_SPILL_ROWS: usize = 4_096;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TITLE_RUN_MERGE_FAN_IN` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:41:7
[INFO] [stdout]    |
[INFO] [stdout] 41 | const TITLE_RUN_MERGE_FAN_IN: usize = 8;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TITLE_RUN_SESSION_ID_MAX_BYTES` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 | const TITLE_RUN_SESSION_ID_MAX_BYTES: usize = 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `UUID_RE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | static UUID_RE: LazyLock<Regex> = LazyLock::new(|| {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionIndexEntry` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | struct SessionIndexEntry {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compare_title_candidates` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn compare_title_candidates(left: &TitleCandidate, right: &TitleCandidate) -> Ordering {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TitleRunBuildError` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:77:6
[INFO] [stdout]    |
[INFO] [stdout] 77 | enum TitleRunBuildError {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TitleRunBuilder` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | struct TitleRunBuilder<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TitleRunBuilder<'a> {
[INFO] [stdout]     | ---------------------------- associated items in this implementation
[INFO] [stdout] 101 |     fn new(is_cancelled: &'a (dyn Fn() -> bool + Sync)) -> Result<Self, TitleRunBuildError> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     fn push(&mut self, candidate: TitleCandidate) -> Result<(), TitleRunBuildError> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn finish(mut self) -> Result<Option<CodexTitleEnricher>, TitleRunBuildError> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     fn flush_buffer(&mut self) -> Result<(), TitleRunBuildError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     fn add_run(&mut self, mut level: usize, mut path: PathBuf) -> Result<(), TitleRunBuildError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn merge_runs(&mut self, inputs: &[PathBuf]) -> Result<PathBuf, TitleRunBuildError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn next_run_path(&mut self, kind: &str) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_title_run` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:252:4
[INFO] [stdout]     |
[INFO] [stdout] 252 | fn write_title_run(path: &Path, candidates: &[TitleCandidate]) -> io::Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_title_candidate` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:260:4
[INFO] [stdout]     |
[INFO] [stdout] 260 | fn write_title_candidate(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_title_runs` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:278:4
[INFO] [stdout]     |
[INFO] [stdout] 278 | fn merge_title_runs(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_title_runs` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:325:4
[INFO] [stdout]     |
[INFO] [stdout] 325 | fn remove_title_runs(paths: &[PathBuf]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_bounded_title_enricher` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:410:4
[INFO] [stdout]     |
[INFO] [stdout] 410 | fn build_bounded_title_enricher(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_build_bounded_title_enricher` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:428:4
[INFO] [stdout]     |
[INFO] [stdout] 428 | fn try_build_bounded_title_enricher(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_session_index_title_candidates` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:447:4
[INFO] [stdout]     |
[INFO] [stdout] 447 | fn append_session_index_title_candidates(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_db_title_candidates` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:502:4
[INFO] [stdout]     |
[INFO] [stdout] 502 | fn append_db_title_candidates(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_sessions_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:599:15
[INFO] [stdout]     |
[INFO] [stdout] 599 | pub(crate) fn stream_sessions_cancellable(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_sessions_in_config_dir_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn stream_sessions_in_config_dir_cancellable(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_messages_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:680:15
[INFO] [stdout]     |
[INFO] [stdout] 680 | pub(crate) fn load_messages_cancellable(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_transcript_line` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:699:15
[INFO] [stdout]     |
[INFO] [stdout] 699 | pub(crate) fn parse_transcript_line(line: &str) -> Option<SessionMessage> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_session` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:830:8
[INFO] [stdout]     |
[INFO] [stdout] 830 | pub fn delete_session(_root: &Path, path: &Path, session_id: &str) -> Result<bool, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_session` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:851:4
[INFO] [stdout]     |
[INFO] [stdout] 851 | fn parse_session(path: &Path) -> Option<SessionMeta> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_session_authoritative` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:855:4
[INFO] [stdout]     |
[INFO] [stdout] 855 | fn parse_session_authoritative(path: &Path) -> Result<Option<SessionMeta>, cache::StreamScanStop> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_session_lines` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:866:4
[INFO] [stdout]     |
[INFO] [stdout] 866 | fn parse_session_lines(path: &Path, head: &[String], tail: &[String]) -> Option<SessionMeta> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_subagent_source` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:993:4
[INFO] [stdout]     |
[INFO] [stdout] 993 | fn is_subagent_source(source: Option<&Value>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `infer_session_id_from_filename` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/codex.rs:1000:4
[INFO] [stdout]      |
[INFO] [stdout] 1000 | fn infer_session_id_from_filename(path: &Path) -> Option<String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_sessions_cancellable` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/gemini.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) fn stream_sessions_cancellable(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `visit_stream_targets` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/gemini.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn visit_stream_targets(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fingerprint_target` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/gemini.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn fingerprint_target(path: &Path) -> Option<FileScanTarget> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_meta_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/gemini.rs:118:4
[INFO] [stdout]     |
[INFO] [stdout] 118 | fn parse_meta_cancellable(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_session_lightweight` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/gemini.rs:185:4
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn parse_session_lightweight(path: &Path, prefix: &str) -> SessionMeta {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_json_value` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/gemini.rs:225:4
[INFO] [stdout]     |
[INFO] [stdout] 225 | fn extract_json_value(input: &str, key: &str) -> Option<Value> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_messages_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/gemini.rs:238:15
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub(crate) fn load_messages_cancellable(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_transcript_message` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/gemini.rs:278:15
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub(crate) fn parse_transcript_message(message: &Value) -> Option<SessionMessage> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_session` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/gemini.rs:398:8
[INFO] [stdout]     |
[INFO] [stdout] 398 | pub fn delete_session(_root: &Path, path: &Path, session_id: &str) -> Result<bool, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_session` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/gemini.rs:423:4
[INFO] [stdout]     |
[INFO] [stdout] 423 | fn parse_session(path: &Path) -> Option<SessionMeta> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_session_data` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/gemini.rs:436:4
[INFO] [stdout]     |
[INFO] [stdout] 436 | fn parse_session_data(path: &Path, data: &str) -> Option<SessionMeta> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_hermes_db_path` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn get_hermes_db_path() -> PathBuf {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_hermes_sessions_dir` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn get_hermes_sessions_dir() -> PathBuf {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_sessions_cancellable` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub(crate) fn stream_sessions_cancellable(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_stream_database` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:170:4
[INFO] [stdout]     |
[INFO] [stdout] 170 | fn open_stream_database() -> Result<Option<Connection>, cache::StreamScanStop> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HermesStreamPlan` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:213:8
[INFO] [stdout]     |
[INFO] [stdout] 213 | struct HermesStreamPlan {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `discover`, `decode_row`, and `decodable_recent_contains` are never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:218:8
[INFO] [stdout]     |
[INFO] [stdout] 217 | impl HermesStreamPlan {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 218 |     fn discover(conn: &Connection) -> Result<Self, cache::StreamScanStop> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     fn decode_row(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     fn decodable_recent_contains(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sqlite_value_to_json` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:334:4
[INFO] [stdout]     |
[INFO] [stdout] 334 | fn sqlite_value_to_json(value: ValueRef<'_>) -> Option<Value> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_sqlite_sessions` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:344:4
[INFO] [stdout]     |
[INFO] [stdout] 344 | fn stream_sqlite_sessions(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_messages_sqlite_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:389:15
[INFO] [stdout]     |
[INFO] [stdout] 389 | pub(crate) fn load_messages_sqlite_cancellable(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_messages_sqlite_from_connection` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:411:4
[INFO] [stdout]     |
[INFO] [stdout] 411 | fn load_messages_sqlite_from_connection(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_transcript_sqlite_messages` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:497:15
[INFO] [stdout]     |
[INFO] [stdout] 497 | pub(crate) fn load_transcript_sqlite_messages(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_session_sqlite` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:562:8
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub fn delete_session_sqlite(session_id: &str, source: &str) -> Result<bool, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_jsonl_session_authoritative` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:614:4
[INFO] [stdout]     |
[INFO] [stdout] 614 | fn parse_jsonl_session_authoritative(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_jsonl_session_lines` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:628:4
[INFO] [stdout]     |
[INFO] [stdout] 628 | fn parse_jsonl_session_lines(path: &Path, head: &[String], tail: &[String]) -> Option<SessionMeta> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_messages_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:754:15
[INFO] [stdout]     |
[INFO] [stdout] 754 | pub(crate) fn load_messages_cancellable(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_transcript_line` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:772:15
[INFO] [stdout]     |
[INFO] [stdout] 772 | pub(crate) fn parse_transcript_line(line: &str) -> Option<SessionMessage> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_session` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/hermes.rs:969:8
[INFO] [stdout]     |
[INFO] [stdout] 969 | pub fn delete_session(_root: &Path, path: &Path, _session_id: &str) -> Result<bool, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISPLAY_NAME_CACHE_DIRS` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const DISPLAY_NAME_CACHE_DIRS: usize = 4;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISPLAY_NAME_MAX_FILE_BYTES` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const DISPLAY_NAME_MAX_FILE_BYTES: u64 = 2 * 1024 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISPLAY_NAME_MAX_ENTRIES` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const DISPLAY_NAME_MAX_ENTRIES: usize = 4_096;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `strip_message_id_suffix` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn strip_message_id_suffix(text: &str) -> &str {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_sessions_cancellable` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:48:15
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub(crate) fn stream_sessions_cancellable(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `visit_stream_targets` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn visit_stream_targets(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fingerprint_target` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn fingerprint_target(path: &Path) -> Option<FileScanTarget> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_meta_authoritative` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn parse_meta_authoritative(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DisplayNameEntry` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 | struct DisplayNameEntry {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DisplayNameMapSeed` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | struct DisplayNameMapSeed<'a> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DisplayNameMapVisitor` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | struct DisplayNameMapVisitor<'a> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DisplayNameLoad` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:227:6
[INFO] [stdout]     |
[INFO] [stdout] 227 | enum DisplayNameLoad {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DisplayNameCacheState` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | struct DisplayNameCacheState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DisplayNameIndexCache` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | struct DisplayNameIndexCache {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `load` are never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:248:8
[INFO] [stdout]     |
[INFO] [stdout] 247 | impl DisplayNameIndexCache {
[INFO] [stdout]     | -------------------------- associated items in this implementation
[INFO] [stdout] 248 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn get(
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     fn load(
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_messages_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:351:15
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub(crate) fn load_messages_cancellable(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_transcript_line` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:369:15
[INFO] [stdout]     |
[INFO] [stdout] 369 | pub(crate) fn parse_transcript_line(line: &str) -> Option<SessionMessage> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_session` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:461:8
[INFO] [stdout]     |
[INFO] [stdout] 461 | pub fn delete_session(_root: &Path, path: &Path, session_id: &str) -> Result<bool, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_session` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:492:4
[INFO] [stdout]     |
[INFO] [stdout] 492 | fn parse_session(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_session_authoritative` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:501:4
[INFO] [stdout]     |
[INFO] [stdout] 501 | fn parse_session_authoritative(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_session_lines` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:515:4
[INFO] [stdout]     |
[INFO] [stdout] 515 | fn parse_session_lines(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prune_sessions_index` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/openclaw.rs:636:4
[INFO] [stdout]     |
[INFO] [stdout] 636 | fn prune_sessions_index(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_opencode_base_dir` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:29:15
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub(crate) fn get_opencode_base_dir() -> PathBuf {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_opencode_data_dir` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub(crate) fn get_opencode_data_dir() -> PathBuf {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_opencode_db_path` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn get_opencode_db_path() -> PathBuf {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_sessions_cancellable` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:49:15
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) fn stream_sessions_cancellable(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fingerprint_target` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn fingerprint_target(message_root: &Path, path: &Path) -> Option<FileScanTarget> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_stream_database` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:143:4
[INFO] [stdout]     |
[INFO] [stdout] 143 | fn open_stream_database() -> Result<Option<Connection>, cache::StreamScanStop> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sqlite_stream_decodable_contains` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:185:4
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn sqlite_stream_decodable_contains(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sqlite_metadata_select_list` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:204:4
[INFO] [stdout]     |
[INFO] [stdout] 204 | fn sqlite_metadata_select_list(session_alias: &str, updated_expression: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sqlite_session_metadata_query` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:218:4
[INFO] [stdout]     |
[INFO] [stdout] 218 | fn sqlite_session_metadata_query(_conn: &Connection, ordered: bool) -> rusqlite::Result<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `emit_json_with_sqlite_precedence` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:232:4
[INFO] [stdout]     |
[INFO] [stdout] 232 | fn emit_json_with_sqlite_precedence(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_sqlite_meta` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:251:4
[INFO] [stdout]     |
[INFO] [stdout] 251 | fn decode_sqlite_meta(row: &rusqlite::Row<'_>, db_display: &str) -> rusqlite::Result<SessionMeta> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_sqlite_sessions` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:277:4
[INFO] [stdout]     |
[INFO] [stdout] 277 | fn stream_sqlite_sessions(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_cacheable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:337:4
[INFO] [stdout]     |
[INFO] [stdout] 337 | fn is_cacheable(meta: &SessionMeta) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenCodeMessageHeader` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 355 | struct OpenCodeMessageHeader {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_messages_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:361:15
[INFO] [stdout]     |
[INFO] [stdout] 361 | pub(crate) fn load_messages_cancellable(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_messages_sqlite_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:473:15
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub(crate) fn load_messages_sqlite_cancellable(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_messages_sqlite_from_connection` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:495:4
[INFO] [stdout]     |
[INFO] [stdout] 495 | fn load_messages_sqlite_from_connection(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `retain_recent_opencode_header` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:618:4
[INFO] [stdout]     |
[INFO] [stdout] 618 | fn retain_recent_opencode_header(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_opencode_part_preview` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:643:4
[INFO] [stdout]     |
[INFO] [stdout] 643 | fn load_opencode_part_preview(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_transcript_file_message` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:701:15
[INFO] [stdout]     |
[INFO] [stdout] 701 | pub(crate) fn load_transcript_file_message(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_transcript_sqlite_messages` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:765:15
[INFO] [stdout]     |
[INFO] [stdout] 765 | pub(crate) fn load_transcript_sqlite_messages(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_opencode_sqlite_parts_preview` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:856:4
[INFO] [stdout]     |
[INFO] [stdout] 856 | fn load_opencode_sqlite_parts_preview(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_session` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:1142:8
[INFO] [stdout]      |
[INFO] [stdout] 1142 | pub fn delete_session(storage: &Path, path: &Path, session_id: &str) -> Result<bool, String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_session_sqlite` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:1208:8
[INFO] [stdout]      |
[INFO] [stdout] 1208 | pub fn delete_session_sqlite(session_id: &str, source: &str) -> Result<bool, String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_session_cancellable` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:1249:4
[INFO] [stdout]      |
[INFO] [stdout] 1249 | fn parse_session_cancellable(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_session_lightweight` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:1343:4
[INFO] [stdout]      |
[INFO] [stdout] 1343 | fn parse_session_lightweight(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_json_value` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:1406:4
[INFO] [stdout]      |
[INFO] [stdout] 1406 | fn extract_json_value(input: &str, key: &str) -> Option<Value> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_first_user_summary_streaming` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:1419:4
[INFO] [stdout]      |
[INFO] [stdout] 1419 | fn get_first_user_summary_streaming(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_json_files` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:1580:4
[INFO] [stdout]      |
[INFO] [stdout] 1580 | fn collect_json_files(root: &Path, files: &mut Vec<PathBuf>) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_session_file` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:1600:4
[INFO] [stdout]      |
[INFO] [stdout] 1600 | fn find_session_file(storage: &Path, session_id: &str) -> Option<PathBuf> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_file_if_exists` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:1611:4
[INFO] [stdout]      |
[INFO] [stdout] 1611 | fn remove_file_if_exists(path: &Path) -> std::io::Result<()> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_dir_all_if_exists` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/opencode.rs:1619:4
[INFO] [stdout]      |
[INFO] [stdout] 1619 | fn remove_dir_all_if_exists(path: &Path) -> std::io::Result<()> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TITLE_MAX_CHARS` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/utils.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const TITLE_MAX_CHARS: usize = 80;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_modified_ms` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/utils.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) fn file_modified_ms(path: &Path) -> Option<i64> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_head_tail_lines_bounded` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/utils.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub(crate) fn read_head_tail_lines_bounded(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_prefix_cancellable` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/utils.rs:167:15
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub(crate) fn read_prefix_cancellable(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `truncate_summary` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/utils.rs:370:8
[INFO] [stdout]     |
[INFO] [stdout] 370 | pub fn truncate_summary(text: &str, max_chars: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `path_basename` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/providers/utils.rs:384:8
[INFO] [stdout]     |
[INFO] [stdout] 384 | pub fn path_basename(value: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionIdentity` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/query_manifest.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct SessionIdentity {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_row` and `from_hit` are never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/query_manifest.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl SessionIdentity {
[INFO] [stdout]    | -------------------- associated functions in this implementation
[INFO] [stdout] 26 |     fn from_row(row: &SessionMeta) -> Self {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn from_hit(hit: SessionSearchHit) -> Self {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_view_manifest` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/query_manifest.rs:64:15
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub(crate) fn build_view_manifest(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_view_manifest_with_search` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/query_manifest.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn build_view_manifest_with_search<F>(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_active` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/query_manifest.rs:143:4
[INFO] [stdout]     |
[INFO] [stdout] 143 | fn ensure_active(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `session_metadata_matches` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/query_manifest.rs:154:4
[INFO] [stdout]     |
[INFO] [stdout] 154 | fn session_metadata_matches(session: &SessionMeta, query: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `filter_option_text_matches` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/query_manifest.rs:165:4
[INFO] [stdout]     |
[INFO] [stdout] 165 | fn filter_option_text_matches(value: Option<&str>, query: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `filter_option_path_matches` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/query_manifest.rs:169:4
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn filter_option_path_matches(value: Option<&str>, query: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `filter_text_matches` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/query_manifest.rs:176:4
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn filter_text_matches(value: &str, query: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `filter_timestamp_matches` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/query_manifest.rs:180:4
[INFO] [stdout]     |
[INFO] [stdout] 180 | fn filter_timestamp_matches(timestamp_ms: Option<i64>, query: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `path_basename` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/query_manifest.rs:194:4
[INFO] [stdout]     |
[INFO] [stdout] 194 | fn path_basename(path: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SNAPSHOT_FORMAT_VERSION` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const SNAPSHOT_FORMAT_VERSION: u32 = 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SNAPSHOT_FILE_PREFIX` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const SNAPSHOT_FILE_PREFIX: &str = "session-scan-recent-v1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SNAPSHOT_BYTES` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const MAX_SNAPSHOT_BYTES: u64 = 8 * 1024 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecentSnapshot` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct RecentSnapshot {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_bounded_rows` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn deserialize_bounded_rows<'de, D>(deserializer: D) -> Result<Vec<SessionMeta>, D::Error>
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `snapshot_purge_lock` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn snapshot_purge_lock() -> &'static Mutex<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `supported_scope` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn supported_scope(provider_id: &str) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `row_belongs_to_scope` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn row_belongs_to_scope(row: &SessionMeta, provider_id: &str) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clone_utf8_prefix` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn clone_utf8_prefix(value: &str, max_bytes: usize) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clone_bounded_manifest_candidate` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn clone_bounded_manifest_candidate(row: &SessionMeta) -> Option<SessionMeta> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `snapshot_path` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn snapshot_path(config_dir: &Path, provider_id: &str) -> Option<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `invalid_snapshot` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:147:4
[INFO] [stdout]     |
[INFO] [stdout] 147 | fn invalid_snapshot(path: &Path, reason: &str) -> AppError {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_at` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:154:4
[INFO] [stdout]     |
[INFO] [stdout] 154 | fn load_at(config_dir: &Path, provider_id: &str) -> Result<Vec<SessionMeta>, AppError> {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_scope` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:255:4
[INFO] [stdout]     |
[INFO] [stdout] 255 | fn write_scope<'a>(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `purge` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:298:15
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub(crate) fn purge(provider_id: &str, session_id: &str, source_path: &str) {
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_delete_and_purge_at` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/recent_snapshot.rs:306:4
[INFO] [stdout]     |
[INFO] [stdout] 306 | fn register_delete_and_purge_at(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `load_batch_cancellable`, `delete_missing_for_provider_bounded`, `upsert_batch`, `delete_paths`, and `delete_rows_by_session` are never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/scan_cache_store.rs:294:19
[INFO] [stdout]     |
[INFO] [stdout]  82 | impl ScanCacheStore {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub(crate) fn load_batch_cancellable(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     pub(crate) fn delete_missing_for_provider_bounded(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 525 |     pub fn upsert_batch(&self, entries: &[SessionScanCacheEntry]) -> Result<(), AppError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 574 |     pub fn delete_paths(&self, paths: &[String]) -> Result<(), AppError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 605 |     pub fn delete_rows_by_session(&self, provider: &str, session_id: &str) -> Result<(), AppError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `purge_session` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/scan_cache_store.rs:751:8
[INFO] [stdout]     |
[INFO] [stdout] 751 | pub fn purge_session(provider_id: &str, session_id: &str, source_path: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `purge_session_in` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/scan_cache_store.rs:773:15
[INFO] [stdout]     |
[INFO] [stdout] 773 | pub(crate) fn purge_session_in(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `escape_like` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/scan_cache_store.rs:791:4
[INFO] [stdout]     |
[INFO] [stdout] 791 | fn escape_like(input: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `launch_terminal` is never used
[INFO] [stdout]  --> vendor/cc-switch-cli/src-tauri/src/session_manager/terminal/mod.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn launch_terminal(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `launch_macos_terminal` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/terminal/mod.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn launch_macos_terminal(command: &str, cwd: Option<&str>) -> Result<(), String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `launch_iterm` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/terminal/mod.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn launch_iterm(command: &str, cwd: Option<&str>) -> Result<(), String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `launch_ghostty` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/terminal/mod.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn launch_ghostty(command: &str, cwd: Option<&str>) -> Result<(), String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `launch_kitty` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/terminal/mod.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn launch_kitty(command: &str, cwd: Option<&str>) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `launch_wezterm` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/terminal/mod.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn launch_wezterm(command: &str, cwd: Option<&str>) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `launch_kaku` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/terminal/mod.rs:158:4
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn launch_kaku(command: &str, cwd: Option<&str>) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_wezterm_compatible_args` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/terminal/mod.rs:174:4
[INFO] [stdout]     |
[INFO] [stdout] 174 | fn build_wezterm_compatible_args(app_name: &str, command: &str, cwd: Option<&str>) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_wezterm_compatible_args_with_shell` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/terminal/mod.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn build_wezterm_compatible_args_with_shell(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `launch_warp` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/terminal/mod.rs:207:4
[INFO] [stdout]     |
[INFO] [stdout] 207 | fn launch_warp(command: &str, cwd: Option<&str>) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `launch_alacritty` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/terminal/mod.rs:248:4
[INFO] [stdout]     |
[INFO] [stdout] 248 | fn launch_alacritty(command: &str, cwd: Option<&str>) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `launch_custom` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/terminal/mod.rs:277:4
[INFO] [stdout]     |
[INFO] [stdout] 277 | fn launch_custom(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_shell_command` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/terminal/mod.rs:309:4
[INFO] [stdout]     |
[INFO] [stdout] 309 | fn build_shell_command(command: &str, cwd: Option<&str>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shell_escape` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/terminal/mod.rs:318:4
[INFO] [stdout]     |
[INFO] [stdout] 318 | fn shell_escape(value: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `escape_osascript` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/terminal/mod.rs:323:4
[INFO] [stdout]     |
[INFO] [stdout] 323 | fn escape_osascript(value: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRANSCRIPT_PAGE_SIZE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:28:18
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub(crate) const TRANSCRIPT_PAGE_SIZE: usize = 100;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FORMAT_VERSION` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const FORMAT_VERSION: u32 = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOT_DIR` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const ROOT_DIR: &str = "transcript-index-v1";
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CURRENT_FILE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const CURRENT_FILE: &str = "current.json";
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MANIFEST_FILE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | const MANIFEST_FILE: &str = "manifest.json";
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INDEX_FILE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const INDEX_FILE: &str = "index.sqlite";
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOT_LOCK_FILE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const ROOT_LOCK_FILE: &str = ".root.lock";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CACHE_BUILD_LOCK_FILE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const CACHE_BUILD_LOCK_FILE: &str = ".cache-build.lock";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCOPE_LOCK_FILE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const SCOPE_LOCK_FILE: &str = ".scope.lock";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCOPE_LEASE_FILE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const SCOPE_LEASE_FILE: &str = ".scope.lease";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_LOCK_FILE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const BUILD_LOCK_FILE: &str = ".build.lock";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GENERATION_LEASE_FILE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const GENERATION_LEASE_FILE: &str = ".lease.lock";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVALID_GENERATION_FILE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:40:7
[INFO] [stdout]    |
[INFO] [stdout] 40 | const INVALID_GENERATION_FILE: &str = ".invalid";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PURGE_SCOPE_FILE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:41:7
[INFO] [stdout]    |
[INFO] [stdout] 41 | const PURGE_SCOPE_FILE: &str = ".purge";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_POINTER_BYTES` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const MAX_POINTER_BYTES: u64 = 64 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_MANIFEST_BYTES` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:43:7
[INFO] [stdout]    |
[INFO] [stdout] 43 | const MAX_MANIFEST_BYTES: u64 = 128 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_INDEXABLE_RECORD_BYTES` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 | const MAX_INDEXABLE_RECORD_BYTES: usize = 4 * 1024 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SOURCE_STABILITY_ATTEMPTS` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:45:7
[INFO] [stdout]    |
[INFO] [stdout] 45 | const MAX_SOURCE_STABILITY_ATTEMPTS: usize = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CACHED_TRANSCRIPT_SCOPES` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 | const MAX_CACHED_TRANSCRIPT_SCOPES: usize = 128;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_TRANSCRIPT_CACHE_BYTES` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:47:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | const MAX_TRANSCRIPT_CACHE_BYTES: u64 = 512 * 1024 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INITIAL_TRANSCRIPT_BUILD_BYTES` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 | const INITIAL_TRANSCRIPT_BUILD_BYTES: u64 = 64 * 1024 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_TRANSCRIPT_BUILD_BYTES` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | const MIN_TRANSCRIPT_BUILD_BYTES: u64 = 1024 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRANSCRIPT_BUILD_METADATA_RESERVE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const TRANSCRIPT_BUILD_METADATA_RESERVE: u64 = 1024 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_BUDGET_EXCEEDED_ERROR` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const BUILD_BUDGET_EXCEEDED_ERROR: &str = "__cc_switch_transcript_build_budget_exceeded__";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCATOR_JSONL` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const LOCATOR_JSONL: i64 = 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCATOR_RAW_JSONL` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const LOCATOR_RAW_JSONL: i64 = 2;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCATOR_GEMINI` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:55:7
[INFO] [stdout]    |
[INFO] [stdout] 55 | const LOCATOR_GEMINI: i64 = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCATOR_RAW_GEMINI` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:56:7
[INFO] [stdout]    |
[INFO] [stdout] 56 | const LOCATOR_RAW_GEMINI: i64 = 4;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCATOR_OPENCODE_FILE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:57:7
[INFO] [stdout]    |
[INFO] [stdout] 57 | const LOCATOR_OPENCODE_FILE: i64 = 5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCATOR_OPENCODE_SQLITE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:58:7
[INFO] [stdout]    |
[INFO] [stdout] 58 | const LOCATOR_OPENCODE_SQLITE: i64 = 6;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCATOR_HERMES_SQLITE` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:59:7
[INFO] [stdout]    |
[INFO] [stdout] 59 | const LOCATOR_HERMES_SQLITE: i64 = 7;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranscriptPage` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub(crate) struct TranscriptPage {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranscriptReader` is never constructed
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:76:19
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub(crate) struct TranscriptReader {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TranscriptPageError` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub(crate) enum TranscriptPageError {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `requires_refresh` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:92:25
[INFO] [stdout]    |
[INFO] [stdout] 91 | impl TranscriptPageError {
[INFO] [stdout]    | ------------------------ method in this implementation
[INFO] [stdout] 92 |     pub(crate) const fn requires_refresh(&self) -> bool {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:108:19
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl TranscriptReader {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] 108 |     pub(crate) fn generation(&self) -> &str {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub(crate) const fn total_rows(&self) -> usize {
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub(crate) fn provider_id(&self) -> &str {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub(crate) fn source_path(&self) -> &str {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub(crate) fn page_count(&self) -> usize {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub(crate) fn load_page(
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     fn ensure_source_is_current(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     fn mark_generation_invalid(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub(crate) fn locate_message_key(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranscriptManifest` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:370:8
[INFO] [stdout]     |
[INFO] [stdout] 370 | struct TranscriptManifest {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceCheckpoint` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:381:8
[INFO] [stdout]     |
[INFO] [stdout] 381 | struct SourceCheckpoint {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceRevision` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:386:8
[INFO] [stdout]     |
[INFO] [stdout] 386 | struct SourceRevision {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CurrentPointer` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:393:8
[INFO] [stdout]     |
[INFO] [stdout] 393 | struct CurrentPointer {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Locator` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:401:8
[INFO] [stdout]     |
[INFO] [stdout] 401 | struct Locator {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Candidate` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:410:8
[INFO] [stdout]     |
[INFO] [stdout] 410 | struct Candidate {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BuildAttempt` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:420:6
[INFO] [stdout]     |
[INFO] [stdout] 420 | enum BuildAttempt {
[INFO] [stdout]     |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranscriptIndexStore` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:427:8
[INFO] [stdout]     |
[INFO] [stdout] 427 | struct TranscriptIndexStore {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScopeCacheEntry` is never constructed
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:431:8
[INFO] [stdout]     |
[INFO] [stdout] 431 | struct ScopeCacheEntry {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:439:8
[INFO] [stdout]      |
[INFO] [stdout]  438 | impl TranscriptIndexStore {
[INFO] [stdout]      | ------------------------- associated items in this implementation
[INFO] [stdout]  439 |     fn open() -> Result<Self, String> {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  445 |     fn open_at(config_dir: &Path) -> Result<Self, String> {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  457 |     fn open_or_build(
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  575 |     fn acquire_scope_build_lock(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  602 |     fn open_current(
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  706 |     fn build(
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  880 |     fn cleanup_unleased_generations(&self, scope: &Path, current: &str) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  923 |     fn cleanup_requested_scopes(&self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  953 |     fn enforce_cache_budget(&self, active_scope: &Path) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  961 |     fn reserve_build_budget(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1034 |     fn cleanup_empty_scope(&self, scope: &Path) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1060 |     fn enforce_cache_budget_with_limits(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1138 |     fn cleanup_requested_scope(&self, scope: &Path) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1153 |     fn persist_validated_fast_revision(&self, scope: &Path, generation: &str, revision: &str) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1181 |     fn purge_scope(&self, provider_id: &str, source_path: &str) {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1210 |     fn try_quarantine_scope(&self, scope: &Path) -> Option<PathBuf> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1234 |     fn scope_dir(&self, provider_id: &str, source_path: &str) -> PathBuf {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `purge_deleted_transcript_cache` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1243:15
[INFO] [stdout]      |
[INFO] [stdout] 1243 | pub(crate) fn purge_deleted_transcript_cache(provider_id: &str, source_path: &str) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_transcript_cancellable` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1254:15
[INFO] [stdout]      |
[INFO] [stdout] 1254 | pub(crate) fn open_transcript_cancellable(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_transcript_page_cancellable` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1264:15
[INFO] [stdout]      |
[INFO] [stdout] 1264 | pub(crate) fn open_transcript_page_cancellable(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_transcript_pages_cancellable` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1285:15
[INFO] [stdout]      |
[INFO] [stdout] 1285 | pub(crate) fn open_transcript_pages_cancellable(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `configure_index_size_limit` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1350:4
[INFO] [stdout]      |
[INFO] [stdout] 1350 | fn configure_index_size_limit(conn: &Connection, max_bytes: u64) -> Result<(), String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_build_sqlite_error` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1365:4
[INFO] [stdout]      |
[INFO] [stdout] 1365 | fn map_build_sqlite_error(context: &str, error: rusqlite::Error) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialize_index_schema` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1377:4
[INFO] [stdout]      |
[INFO] [stdout] 1377 | fn initialize_index_schema(conn: &Connection) -> Result<(), String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_index_header` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1412:4
[INFO] [stdout]      |
[INFO] [stdout] 1412 | fn validate_index_header(path: &Path, expected_rows: usize) -> Result<(), String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `index_provider` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1436:4
[INFO] [stdout]      |
[INFO] [stdout] 1436 | fn index_provider(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `index_jsonl` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1459:4
[INFO] [stdout]      |
[INFO] [stdout] 1459 | fn index_jsonl(
[INFO] [stdout]      |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `index_jsonl_record` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1531:4
[INFO] [stdout]      |
[INFO] [stdout] 1531 | fn index_jsonl_record(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `index_gemini` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1581:4
[INFO] [stdout]      |
[INFO] [stdout] 1581 | fn index_gemini(
[INFO] [stdout]      |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `index_opencode_files` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1625:4
[INFO] [stdout]      |
[INFO] [stdout] 1625 | fn index_opencode_files(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `index_opencode_sqlite` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1715:4
[INFO] [stdout]      |
[INFO] [stdout] 1715 | fn index_opencode_sqlite(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `index_hermes_sqlite` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1761:4
[INFO] [stdout]      |
[INFO] [stdout] 1761 | fn index_hermes_sqlite(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `materialize_locators` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1807:4
[INFO] [stdout]      |
[INFO] [stdout] 1807 | fn materialize_locators(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `materialize_file_range` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1883:4
[INFO] [stdout]      |
[INFO] [stdout] 1883 | fn materialize_file_range(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `complete_optional_page` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1933:4
[INFO] [stdout]      |
[INFO] [stdout] 1933 | fn complete_optional_page(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unavailable_message` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1965:4
[INFO] [stdout]      |
[INFO] [stdout] 1965 | fn unavailable_message() -> SessionMessage {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OversizedJsonEnvelope` is never constructed
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1974:8
[INFO] [stdout]      |
[INFO] [stdout] 1974 | struct OversizedJsonEnvelope {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OversizedJsonMessage` is never constructed
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1988:8
[INFO] [stdout]      |
[INFO] [stdout] 1988 | struct OversizedJsonMessage {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OversizedOpenCodeHeader` is never constructed
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:1998:8
[INFO] [stdout]      |
[INFO] [stdout] 1998 | struct OversizedOpenCodeHeader {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OversizedOpenCodeTime` is never constructed
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2004:8
[INFO] [stdout]      |
[INFO] [stdout] 2004 | struct OversizedOpenCodeTime {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `probe_oversized_opencode_header` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2008:4
[INFO] [stdout]      |
[INFO] [stdout] 2008 | fn probe_oversized_opencode_header(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `probe_oversized_json_message` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2048:4
[INFO] [stdout]      |
[INFO] [stdout] 2048 | fn probe_oversized_json_message(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CancellableReader` is never constructed
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2127:8
[INFO] [stdout]      |
[INFO] [stdout] 2127 | struct CancellableReader<'a, R> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_jsonl_message` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2144:4
[INFO] [stdout]      |
[INFO] [stdout] 2144 | fn parse_jsonl_message(provider_id: &str, line: &str) -> Option<SessionMessage> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_source` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2154:4
[INFO] [stdout]      |
[INFO] [stdout] 2154 | fn validate_source(provider_id: &str, source_path: &str) -> Result<(), String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_fast_revision` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2170:4
[INFO] [stdout]      |
[INFO] [stdout] 2170 | fn source_fast_revision(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stable_source_revision` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2209:4
[INFO] [stdout]      |
[INFO] [stdout] 2209 | fn stable_source_revision(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_locator_fingerprint` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2228:4
[INFO] [stdout]      |
[INFO] [stdout] 2228 | fn source_locator_fingerprint(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LocatorFingerprint` is never constructed
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2245:8
[INFO] [stdout]      |
[INFO] [stdout] 2245 | struct LocatorFingerprint {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `count`, `add`, and `finish` are never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2252:8
[INFO] [stdout]      |
[INFO] [stdout] 2251 | impl LocatorFingerprint {
[INFO] [stdout]      | ----------------------- methods in this implementation
[INFO] [stdout] 2252 |     fn count(&self) -> usize {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2256 |     fn add(&mut self, candidate: &Candidate) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 2278 |     fn finish(self, provider_id: &str, source_path: &str) -> String {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_revision_namespace` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2289:4
[INFO] [stdout]      |
[INFO] [stdout] 2289 | fn hash_revision_namespace(hasher: &mut Sha256, provider_id: &str, source_path: &str) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_length_prefixed` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2294:4
[INFO] [stdout]      |
[INFO] [stdout] 2294 | fn hash_length_prefixed(hasher: &mut Sha256, value: &[u8]) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `message_identity` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2299:4
[INFO] [stdout]      |
[INFO] [stdout] 2299 | fn message_identity(namespace: &str, bytes: &[u8]) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_file_range_identity` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2306:4
[INFO] [stdout]      |
[INFO] [stdout] 2306 | fn hash_file_range_identity(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_sqlite_fast_revision` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2341:4
[INFO] [stdout]      |
[INFO] [stdout] 2341 | fn hash_sqlite_fast_revision(hasher: &mut Sha256, path: &Path) -> Result<(), String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `path_with_suffix` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2361:4
[INFO] [stdout]      |
[INFO] [stdout] 2361 | fn path_with_suffix(path: &Path, suffix: &str) -> PathBuf {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_optional_path_metadata` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2367:4
[INFO] [stdout]      |
[INFO] [stdout] 2367 | fn hash_optional_path_metadata(hasher: &mut Sha256, path: &Path) -> Result<(), String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_path_metadata` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2384:4
[INFO] [stdout]      |
[INFO] [stdout] 2384 | fn hash_path_metadata(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JsonArrayElement` is never constructed
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2425:8
[INFO] [stdout]      |
[INFO] [stdout] 2425 | struct JsonArrayElement {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scan_named_json_array` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2436:4
[INFO] [stdout]      |
[INFO] [stdout] 2436 | fn scan_named_json_array(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file_bounded` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2621:4
[INFO] [stdout]      |
[INFO] [stdout] 2621 | fn read_file_bounded(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileLock` is never constructed
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2662:8
[INFO] [stdout]      |
[INFO] [stdout] 2662 | struct FileLock {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `shared`, `exclusive`, `exclusive_cancellable`, and `try_exclusive` are never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2667:8
[INFO] [stdout]      |
[INFO] [stdout] 2666 | impl FileLock {
[INFO] [stdout]      | ------------- associated functions in this implementation
[INFO] [stdout] 2667 |     fn shared(path: &Path) -> Result<Self, String> {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2674 |     fn exclusive(path: &Path) -> Result<Self, String> {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2681 |     fn exclusive_cancellable(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2703 |     fn try_exclusive(path: &Path) -> Result<Option<Self>, String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScopeLease` is never constructed
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2729:8
[INFO] [stdout]      |
[INFO] [stdout] 2729 | struct ScopeLease {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `acquire` and `persist_validated_fast_revision` are never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2736:8
[INFO] [stdout]      |
[INFO] [stdout] 2735 | impl ScopeLease {
[INFO] [stdout]      | --------------- associated items in this implementation
[INFO] [stdout] 2736 |     fn acquire(root: &Path, scope: &Path) -> Result<Self, String> {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2744 |     fn persist_validated_fast_revision(&self, generation: &str, revision: &str) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_lock_file` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2774:4
[INFO] [stdout]      |
[INFO] [stdout] 2774 | fn open_lock_file(path: &Path) -> Result<File, String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_private_dir` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2818:4
[INFO] [stdout]      |
[INFO] [stdout] 2818 | fn create_private_dir(path: &Path) -> Result<(), String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_private_dir` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2836:4
[INFO] [stdout]      |
[INFO] [stdout] 2836 | fn validate_private_dir(path: &Path) -> Result<(), String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `restrict_private_file` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2848:4
[INFO] [stdout]      |
[INFO] [stdout] 2848 | fn restrict_private_file(path: &Path) -> Result<(), String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_private_marker` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2873:4
[INFO] [stdout]      |
[INFO] [stdout] 2873 | fn create_private_marker(path: &Path) -> Result<(), String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_private_regular_file` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2879:4
[INFO] [stdout]      |
[INFO] [stdout] 2879 | fn is_private_regular_file(path: &Path) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `valid_scope_name` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2896:4
[INFO] [stdout]      |
[INFO] [stdout] 2896 | fn valid_scope_name(value: &str) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `directory_size_no_symlinks` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2900:4
[INFO] [stdout]      |
[INFO] [stdout] 2900 | fn directory_size_no_symlinks(root: &Path) -> u64 {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_quarantined_scopes` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2924:4
[INFO] [stdout]      |
[INFO] [stdout] 2924 | fn remove_quarantined_scopes(paths: Vec<PathBuf>) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_json_limited` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2941:4
[INFO] [stdout]      |
[INFO] [stdout] 2941 | fn read_json_limited<T: for<'de> Deserialize<'de>>(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_private_read_file` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2959:4
[INFO] [stdout]      |
[INFO] [stdout] 2959 | fn open_private_read_file(path: &Path) -> Result<File, String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_generation` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:2999:4
[INFO] [stdout]      |
[INFO] [stdout] 2999 | fn new_generation() -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `valid_generation` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:3007:4
[INFO] [stdout]      |
[INFO] [stdout] 3007 | fn valid_generation(value: &str) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `u64_to_i64` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:3015:4
[INFO] [stdout]      |
[INFO] [stdout] 3015 | fn u64_to_i64(value: u64) -> Result<i64, String> {
[INFO] [stdout]      |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `usize_to_i64` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/session_manager/transcript.rs:3019:4
[INFO] [stdout]      |
[INFO] [stdout] 3019 | fn usize_to_i64(value: usize) -> Result<i64, String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_visible_app` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/settings.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub fn next_visible_app(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_codex_official_history_unify_migration` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/settings.rs:970:8
[INFO] [stdout]     |
[INFO] [stdout] 970 | pub fn clear_codex_official_history_unify_migration() -> Result<(), AppError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_codex_unify_migrate_existing` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/settings.rs:982:8
[INFO] [stdout]     |
[INFO] [stdout] 982 | pub fn clear_codex_unify_migrate_existing() -> Result<(), AppError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_preferred_terminal` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/settings.rs:988:8
[INFO] [stdout]     |
[INFO] [stdout] 988 | pub fn get_preferred_terminal() -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_preferred_editor` is never used
[INFO] [stdout]    --> vendor/cc-switch-cli/src-tauri/src/settings.rs:995:8
[INFO] [stdout]     |
[INFO] [stdout] 995 | pub fn get_preferred_editor() -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_preferred_editor` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1002:8
[INFO] [stdout]      |
[INFO] [stdout] 1002 | pub fn set_preferred_editor(preferred_editor: Option<String>) -> Result<(), AppError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_preserve_codex_official_auth_on_switch` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1055:8
[INFO] [stdout]      |
[INFO] [stdout] 1055 | pub fn set_preserve_codex_official_auth_on_switch(enabled: bool) -> Result<(), AppError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_theme_mode` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1130:8
[INFO] [stdout]      |
[INFO] [stdout] 1130 | pub fn get_theme_mode() -> Option<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_theme_mode` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1137:8
[INFO] [stdout]      |
[INFO] [stdout] 1137 | pub fn set_theme_mode(mode: &str) -> Result<(), AppError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_icon_mode` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1143:8
[INFO] [stdout]      |
[INFO] [stdout] 1143 | pub fn get_icon_mode() -> Option<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_icon_mode` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1150:8
[INFO] [stdout]      |
[INFO] [stdout] 1150 | pub fn set_icon_mode(mode: &str) -> Result<(), AppError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USAGE_AUTO_SYNC_ON_POISONED_LOCK` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1162:7
[INFO] [stdout]      |
[INFO] [stdout] 1162 | const USAGE_AUTO_SYNC_ON_POISONED_LOCK: bool = false;
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `usage_auto_sync_enabled` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1169:8
[INFO] [stdout]      |
[INFO] [stdout] 1169 | pub fn usage_auto_sync_enabled() -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_usage_auto_sync` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1173:4
[INFO] [stdout]      |
[INFO] [stdout] 1173 | fn read_usage_auto_sync(store: &RwLock<AppSettings>) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_visible_apps` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1180:8
[INFO] [stdout]      |
[INFO] [stdout] 1180 | pub fn get_visible_apps() -> VisibleApps {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_visible_apps` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1187:8
[INFO] [stdout]      |
[INFO] [stdout] 1187 | pub fn set_visible_apps(visible_apps: VisibleApps) -> Result<(), AppError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_visible_apps_settings` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1195:8
[INFO] [stdout]      |
[INFO] [stdout] 1195 | pub fn get_visible_apps_settings() -> VisibleAppsSettings {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_visible_apps_mode` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1202:8
[INFO] [stdout]      |
[INFO] [stdout] 1202 | pub fn set_visible_apps_mode(mode: VisibleAppsMode) -> Result<(), AppError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_common_config_confirmed` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1331:8
[INFO] [stdout]      |
[INFO] [stdout] 1331 | pub fn get_common_config_confirmed() -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_common_config_confirmed` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1338:8
[INFO] [stdout]      |
[INFO] [stdout] 1338 | pub fn set_common_config_confirmed(confirmed: bool) -> Result<(), AppError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_usage_confirmed` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1344:8
[INFO] [stdout]      |
[INFO] [stdout] 1344 | pub fn get_usage_confirmed() -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_usage_confirmed` is never used
[INFO] [stdout]     --> vendor/cc-switch-cli/src-tauri/src/settings.rs:1351:8
[INFO] [stdout]      |
[INFO] [stdout] 1351 | pub fn set_usage_confirmed(confirmed: bool) -> Result<(), AppError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `requires_script` is never used
[INFO] [stdout]   --> vendor/cc-switch-cli/src-tauri/src/usage_script.rs:50:25
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl UsageQueryTemplate {
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub(crate) const fn requires_script(self) -> bool {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 18s
[INFO] running `Command { std: "docker" "inspect" "7f30cba9eaa0278e5ea62ee235c27db88bfdd06760b632b65bfc43db73443cb2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7f30cba9eaa0278e5ea62ee235c27db88bfdd06760b632b65bfc43db73443cb2", kill_on_drop: false }`
[INFO] [stdout] 7f30cba9eaa0278e5ea62ee235c27db88bfdd06760b632b65bfc43db73443cb2
