[INFO] cloning repository https://github.com/zaytsev/esp32-thermostat
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zaytsev/esp32-thermostat" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzaytsev%2Fesp32-thermostat", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzaytsev%2Fesp32-thermostat'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ffe32ffe3d58873b5b628b7a3256a89376969474
[INFO] testing zaytsev/esp32-thermostat against try#c2e32f1c9652b13ed99608599c1e855462f421f3 for pr-146098-7
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzaytsev%2Fesp32-thermostat" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/zaytsev/esp32-thermostat
[INFO] finished tweaking git repo https://github.com/zaytsev/esp32-thermostat
[INFO] tweaked toml for git repo https://github.com/zaytsev/esp32-thermostat written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/zaytsev/esp32-thermostat on toolchain c2e32f1c9652b13ed99608599c1e855462f421f3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/zaytsev/esp32-thermostat 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" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 19f159f5d29ea5dc652425aab69d773646bf638d889246e558bfdadd079e9f5e
[INFO] running `Command { std: "docker" "start" "-a" "19f159f5d29ea5dc652425aab69d773646bf638d889246e558bfdadd079e9f5e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "19f159f5d29ea5dc652425aab69d773646bf638d889246e558bfdadd079e9f5e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "19f159f5d29ea5dc652425aab69d773646bf638d889246e558bfdadd079e9f5e", kill_on_drop: false }`
[INFO] [stdout] 19f159f5d29ea5dc652425aab69d773646bf638d889246e558bfdadd079e9f5e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f47ff908ea94813c12a68654e76b9cb07135a9b3109a40aebcdf22cc451b699a
[INFO] running `Command { std: "docker" "start" "-a" "f47ff908ea94813c12a68654e76b9cb07135a9b3109a40aebcdf22cc451b699a", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling arrow-schema v56.2.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling lexical-util v1.0.7
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling lexical-parse-integer v1.0.6
[INFO] [stderr]    Compiling lexical-write-integer v1.0.6
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling filetime v0.2.26
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling generic-array v0.14.9
[INFO] [stderr]    Compiling lexical-write-float v1.0.6
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling lexical-parse-float v1.0.6
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.10.1
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling lexical-core v1.0.6
[INFO] [stderr]    Compiling flate2 v1.1.4
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling rust_decimal v1.39.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling poly1305 v0.8.0
[INFO] [stderr]    Compiling sha3 v0.10.8
[INFO] [stderr]    Compiling deranged v0.5.4
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling rust-embed-utils v8.7.2
[INFO] [stderr]    Compiling hybrid-array v0.2.3
[INFO] [stderr]    Compiling clap_lex v0.7.5
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling serde_html_form v0.2.8
[INFO] [stderr]    Compiling xattr v1.6.1
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling tar v0.4.44
[INFO] [stderr]    Compiling clap_builder v4.5.48
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling base62 v2.2.3
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling thiserror-impl-no-std v2.0.2
[INFO] [stderr]    Compiling time v0.3.44
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling thiserror-no-std v2.0.2
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerocopy-derive v0.8.27
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling rust-embed-impl v8.7.2
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling clap_derive v4.5.47
[INFO] [stderr]    Compiling maud_macros v0.27.0
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling axum-macros v0.5.0
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling chacha20 v0.9.1
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling kem v0.3.0-pre.0
[INFO] [stderr]    Compiling chacha20poly1305 v0.10.1
[INFO] [stderr]    Compiling ml-kem v0.2.1
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling cobs v0.3.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling rust-embed v8.7.2
[INFO] [stderr]    Compiling axum-core v0.5.5
[INFO] [stderr]    Compiling tracing-subscriber v0.3.20
[INFO] [stderr]    Compiling comfy-table v7.1.2
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling x25519-dalek v2.0.1
[INFO] [stderr]    Compiling clap v4.5.48
[INFO] [stderr]    Compiling clatter v1.1.0
[INFO] [stderr]    Compiling maud v0.27.0
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling postcard v1.1.3
[INFO] [stderr]    Compiling libduckdb-sys v1.4.1
[INFO] [stderr]    Compiling half v2.7.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling esp32-thermostat-common v0.1.0 (/opt/rustwide/workdir/crates/common)
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling arrow-buffer v56.2.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling arrow-data v56.2.0
[INFO] [stderr]    Compiling axum-embed v0.1.0
[INFO] [stderr]    Compiling arrow-array v56.2.0
[INFO] [stderr]    Compiling hyper v1.7.0
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling hyper-util v0.1.17
[INFO] [stderr]    Compiling axum v0.8.6
[INFO] [stderr]    Compiling arrow-select v56.2.0
[INFO] [stderr]    Compiling arrow-arith v56.2.0
[INFO] [stderr]    Compiling arrow-row v56.2.0
[INFO] [stderr]    Compiling arrow-string v56.2.0
[INFO] [stderr]    Compiling arrow-cast v56.2.0
[INFO] [stderr]    Compiling arrow-ord v56.2.0
[INFO] [stderr]    Compiling axum-extra v0.10.3
[INFO] [stderr]    Compiling arrow v56.2.0
[INFO] [stderr]    Compiling duckdb v1.4.1
[INFO] [stderr]    Compiling esp32-thermostat-server v0.1.0 (/opt/rustwide/workdir/crates/server)
[INFO] [stdout] warning: unused import: `PreEscaped`
[INFO] [stdout]    --> crates/server/src/web/view/model.rs:113:24
[INFO] [stdout]     |
[INFO] [stdout] 113 |     use maud::{Markup, PreEscaped, Render, html};
[INFO] [stdout]     |                        ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `util::Asset`
[INFO] [stdout]   --> crates/server/src/web/view/node.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         util::Asset,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `num_records` is never read
[INFO] [stdout]    --> crates/server/src/db.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct DataPoint {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 116 |     pub ts: DateTime<Utc>,
[INFO] [stdout] 117 |     pub num_records: i64,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DataPoint` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `node_name` is never read
[INFO] [stdout]    --> crates/server/src/db.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub struct TelemetryRecord {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 126 |     pub node_id: u64,
[INFO] [stdout] 127 |     pub node_name: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TelemetryRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_node_latest_telemetry` and `set_node_name` are never used
[INFO] [stdout]    --> crates/server/src/db.rs:199:18
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl Store {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub async fn find_node_latest_telemetry(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     pub async fn set_node_name(&self, node_id: u64, new_name: &str) -> anyhow::Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `message_err` is never used
[INFO] [stdout]    --> crates/server/src/telemetry.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl Session {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn message_err(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `msgs_rx`, `msgs_tx`, `errors`, `inside_temp`, and `last_active` are never read
[INFO] [stdout]   --> crates/server/src/web/view/model.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct NodeListItem {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub msgs_rx: Option<u64>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 33 |     pub msgs_tx: Option<u64>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 34 |     pub errors: Option<u64>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 35 |     pub inside_temp: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 36 |     pub heater_on: bool,
[INFO] [stdout] 37 |     pub last_active: Option<DateTime<Utc>>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NodeListItem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `duration` is never read
[INFO] [stdout]   --> crates/server/src/web/view/model.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct NodeNetworkInfo {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub duration: Duration,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NodeNetworkInfo` 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: variants `Rgba` and `CssProp` are never constructed
[INFO] [stdout]    --> crates/server/src/web/view/model.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub enum Color {
[INFO] [stdout]     |              ----- variants in this enum
[INFO] [stdout] 122 |         Hex(u32),
[INFO] [stdout] 123 |         Rgba(u8, u8, u8, f32),
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 124 |         CssProp(String),
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Color` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `rgba` is never used
[INFO] [stdout]    --> crates/server/src/web/view/model.rs:147:16
[INFO] [stdout]     |
[INFO] [stdout] 142 |     impl Color {
[INFO] [stdout]     |     ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 147 |         pub fn rgba(r: u8, g: u8, b: u8, a: f32) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `TimeSeries`, `XY`, and `Categorical` are never constructed
[INFO] [stdout]    --> crates/server/src/web/view/model.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 169 |     pub enum DataPoint {
[INFO] [stdout]     |              --------- variants in this enum
[INFO] [stdout] 170 |         /// For time-series charts. Serializes to `[timestamp, y]`.
[INFO] [stdout] 171 |         TimeSeries(i64, f32),
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |         XY(f32, f32),
[INFO] [stdout]     |         ^^
[INFO] [stdout] 178 |         /// For categorical charts (using a `labels` array). Serializes to just the `y` value.
[INFO] [stdout] 179 |         Categorical(f32),
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DataPoint` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Time` is never constructed
[INFO] [stdout]    --> crates/server/src/web/view/model.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 285 |     pub enum Scale {
[INFO] [stdout]     |              ----- variant in this enum
[INFO] [stdout] 286 |         Linear(CommonScaleConfig),
[INFO] [stdout] 287 |         Time(TimeScaleConfig),
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Scale` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TicksConfig` is never constructed
[INFO] [stdout]    --> crates/server/src/web/view/model.rs:330:16
[INFO] [stdout]     |
[INFO] [stdout] 330 |     pub struct TicksConfig {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ScaleType` is never used
[INFO] [stdout]    --> crates/server/src/web/view/model.rs:337:14
[INFO] [stdout]     |
[INFO] [stdout] 337 |     pub enum ScaleType {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> crates/server/src/web/view/model.rs:347:9
[INFO] [stdout]     |
[INFO] [stdout] 346 |     pub enum TimeUnit {
[INFO] [stdout]     |              -------- variants in this enum
[INFO] [stdout] 347 |         Millisecond,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 348 |         Second,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 349 |         Minute,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 350 |         Hour,
[INFO] [stdout] 351 |         Day,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 352 |         Week,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 353 |         Month,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 354 |         Quarter,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 355 |         Year,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TimeUnit` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Top`, `Bottom`, and `Left` are never constructed
[INFO] [stdout]    --> crates/server/src/web/view/model.rs:361:9
[INFO] [stdout]     |
[INFO] [stdout] 360 |     pub enum Position {
[INFO] [stdout]     |              -------- variants in this enum
[INFO] [stdout] 361 |         Top,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 362 |         Bottom,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 363 |         Left,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Position` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TicksSource` is never used
[INFO] [stdout]    --> crates/server/src/web/view/model.rs:369:14
[INFO] [stdout]     |
[INFO] [stdout] 369 |     pub enum TicksSource {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Ticks` is never constructed
[INFO] [stdout]    --> crates/server/src/web/view/model.rs:379:9
[INFO] [stdout]     |
[INFO] [stdout] 377 |     pub enum ScaleBounds {
[INFO] [stdout]     |              ----------- variant in this enum
[INFO] [stdout] 378 |         Data,
[INFO] [stdout] 379 |         Ticks,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ScaleBounds` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `R` is never constructed
[INFO] [stdout]    --> crates/server/src/web/view/model.rs:386:9
[INFO] [stdout]     |
[INFO] [stdout] 383 |     pub enum AxisId {
[INFO] [stdout]     |              ------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 386 |         R,
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AxisId` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `r_axis` and `options` are never used
[INFO] [stdout]    --> crates/server/src/web/view/model.rs:464:16
[INFO] [stdout]     |
[INFO] [stdout] 439 |     impl ChartConfigBuilder {
[INFO] [stdout]     |     ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 464 |         pub fn r_axis(mut self, config: Scale) -> Self {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 481 |         pub fn options(mut self, options: ChartOptions) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `js` is never used
[INFO] [stdout]   --> crates/server/src/web/view/util.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl<'a> Asset<'a> {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 11 |     pub const fn js(path: &'a str) -> Self {
[INFO] [stdout]    |                  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: linking with `cc` failed: exit status: 1
[INFO] [stdout]   |
[INFO] [stdout]   = note:  "cc" "-m64" "/tmp/rustc7uOKNv/symbols.o" "<17 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/opt/rustwide/target/debug/deps/{libbase62-851cb4630da727a7,libpostcard-8682b450e6dc346a,libcobs-6b80f0f0fccfecdb,libthiserror-3b395d78a48c4535,libmaud-d8c39c7b456dfbfe,libaxum_embed-dbf615f4f265077f,libmime_guess-8fa9f8e42abe6dd6,libunicase-5017e9507498ef51,libaxum_core-0386a75afdb71435,libaxum_extra-0b9b95953598264b,libserde_html_form-8cc411b2008d1f39,libindexmap-af0e6b348448aa24,libequivalent-7e0e8cbe6c474a67,libaxum-56b668a66c9f4c55,libserde_json-004258893efb4326,libserde_path_to_error-3f726f075694b0e2,libserde_urlencoded-4f94074b582f5653,libform_urlencoded-332d45145277cfac,libpercent_encoding-c53c37e60dd2727e,libhyper_util-375b61f264c4a911,libhyper-3e249cb9eb763801,libhttparse-47a3d40564b60e09,libatomic_waker-001109810bdecbaa,libhttpdate-9f9d2502c6a38412,libfutures_channel-179401688c37d974,libmatchit-9957f6fb3fe31ab2,libaxum_core-0aafed701facaae4,libmime-4b44681fdb2c65f7,libhttp_body_util-f2ff7a97002ec3c2,libhttp_body-5d2c120e15cb3719,libhttp-8a286151680a468c,libfnv-2d77ec4f6f971b24,libtower-8954443aa74dd803,libsync_wrapper-d3a2fbe030095381,libtower_layer-d70c7e404336389b,libfutures_util-88328261217f5f90,libfutures_task-bcce5f8e5b6ec165,libpin_utils-9a5791cba021167a,libfutures_core-fc6bb1738f00fc87,libtower_service-0d7df29686b13872,librand-dcce076044b101c7,librand_chacha-f540072e6e017b0f,libppv_lite86-f2b3f51672684c90,libdashmap-2f74df0d3bc05ca9,libhashbrown-5d9404f16ad26a3c,libcrossbeam_utils-57acb8582d3ed5fe,libclatter-db5da8daf25b1ad1,libthiserror_no_std-4f1ed36a7bb3f7ab,libx25519_dalek-ffa50e916223dd21,libcurve25519_dalek-aacc4b4db4af3321,libaes_gcm-7cd545986da9ca57,libctr-64d48ceda521e7e4,libghash-5e204a686b08b520,libpolyval-cd5fefb08a7be20c,libopaque_debug-1c8528c9b2d49180,libuniversal_hash-6b2826e7c798b8bb,libaes-87d6b517d77825dc,libcipher-5b00cf6b720c1406,libinout-9e3efd2e54d24469,libaead-37cac6eb6d740c3d,librust_embed-b1f8ec9b4d0f46db,librust_embed_utils-d623ed42593ede2e,libwalkdir-1a00c768f8c7f3de,libsame_file-1ceb7b6153588b15,libsha2-1e9fab3a1840a441,libcpufeatures-471354fefbcaf2d8,libdigest-002f268fd5e39f48,libsubtle-ca7024fc66e4388f,libblock_buffer-6fd621abc86bd054,libcrypto_common-fc2d617c1c14cb8c,libgeneric_array-00677fc9cc96799b,libtypenum-79b2761ac9665676,librand_core-c609b71e41925644,libgetrandom-9f59009a6c4e34ca,libesp32_thermostat_common-c8c41a3aa0837d9c,libduckdb-ffa608135918258d,libcast-4fedcb37f92f409c,librust_decimal-52827df434fd35db,libarrayvec-25254c8a85b2acdb,libzeroize-7b25300ee83a6b04,libfallible_streaming_iterator-5c0d4caa328bdf11,libfallible_iterator-b208eca984a9b185,libstrum-cce857cf23bd6d64,libhashlink-d0bbdf3b422d206b,libhashbrown-fbebb727e1c38a14,libfoldhash-a84df4cbe8daa3b8,libarrow-ed637d7e43e99c92,libarrow_row-9fc80802ad3234f8,libarrow_string-e2805e7f80cdf47f,libregex-39a46864df4498c9,libarrow_cast-ded721ca7800d271,libatoi-552634e7b6113584,libryu-0ea4bafc9bef6d8b,libbase64-2a03de3babadded3,libcomfy_table-ed897895c862f087,libunicode_width-11318280e9097d13,libstrum-cd0529b9bac5883b,liblexical_core-fb75f7e8cb8ce16a,liblexical_write_float-c0ffd1a671398dc6,liblexical_write_integer-05ef223c8ffd003c,liblexical_parse_float-f1c7aa7537321a27,liblexical_parse_integer-754453fc8e2a122e,liblexical_util-5efad2470efb174e,libarrow_arith-5793e6c2372424cb,libarrow_ord-ed5c4bd233d5753e,libarrow_select-d6844ced706f8e41,libarrow_array-7381c908a8c63aec,libahash-356fb9f192824557,libgetrandom-fe6e64677ee12ec8,libhashbrown-39a1ad584b454bfa,libarrow_data-5336974baa46258b,libarrow_schema-c05e404d81174eeb,libbitflags-ae83ff7d8b19c6be,libarrow_buffer-8e6991515ce87ab3,libhalf-954175b28b8cfcce,libzerocopy-bdedfd8c47ef6e86,libnum-9540ff62c9293622,libnum_iter-cf57c8c4d5fd79fc,libnum_rational-6c615543c77fc982,libnum_complex-2ee08ecb9f635fe8,libnum_bigint-02991e80039070f9,libnum_integer-a7e751b8b07f82ee,liblibduckdb_sys-2ca039b9180f498c,libchrono-764ab8b24db70a23,libiana_time_zone-54997521cde77023,libnum_traits-85b63d4f2b0f532f,libserde-cd1c7ae810a86bec,libserde_core-1a2414e94ebaca1f,libtracing_subscriber-768ceca765cf55bd,libtime-c992f5c7fa87f98b,libitoa-6b76ec393d6a2c41,libtime_core-2040860403d71275,libnum_conv-2c976fbf8b8f2899,libderanged-d10566252ee684be,libpowerfmt-a0c185df26c26a22,libsharded_slab-8a8a8c9e27e64aa6,liblazy_static-b3603208c0de2608,libmatchers-b1231c43dfe00036,libregex_automata-65534f23e8163296,libaho_corasick-30f4a18d68a7d3d5,libmemchr-f9c66c7ba21bf873,libregex_syntax-504e5c95ede94a26,libnu_ansi_term-397b1770c3b67a2d,libtracing-f213f1bfa979833d,libthread_local-58a5bffdafb22871,libtracing_log-78a6256a53e8c521,liblog-28f8cc0684f4f944,libtracing_core-2fa02b5ee2bcd648,libonce_cell-0ba6aecba7086d38,libtokio-796382cf46782959,libsignal_hook_registry-0e45a8eca25f22d2,libsocket2-67f1f25e645d086a,libbytes-bfe11088fe358bd1,libmio-e389cd5a88e10302,libparking_lot-f01d5695693dff4a,libparking_lot_core-8439383c3eef45d9,liblibc-e2775a15e5abc6fd,libcfg_if-666d36e5ee0df220,libsmallvec-5854932b8c8b4991,liblock_api-b14bc138db870a36,libscopeguard-d52bd00767847e44,libpin_project_lite-bedc6e0acd72ff2a,libclap-4b8a66c348357148,libclap_builder-2f7f497186479d34,libstrsim-24acdad2526b95b7,libanstream-8ced18ac73489305,libanstyle_query-2795f030b7507c68,libis_terminal_polyfill-c14c9d53c4f80a97,libcolorchoice-3cdad4dd466782b4,libanstyle_parse-f31b73edea95dc17,libutf8parse-8828ddbb63eb8bad,libclap_lex-cf64d5057a503eff,libanstyle-8f9813155d5c1cf2,libanyhow-a6cad01b77d60716}.rlib" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lduckdb" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustc7uOKNv/raw-dylibs" "-B<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/esp32_thermostat_server-f136849953f2c39c" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
[INFO] [stdout]   = note: some arguments are omitted. use `--verbose` to show all linker arguments
[INFO] [stdout]   = note: rust-lld: error: unable to find library -lduckdb
[INFO] [stdout]           collect2: error: ld returned 1 exit status
[INFO] [stdout]           
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `esp32-thermostat-server` (bin "esp32-thermostat-server") due to 1 previous error; 21 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f47ff908ea94813c12a68654e76b9cb07135a9b3109a40aebcdf22cc451b699a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f47ff908ea94813c12a68654e76b9cb07135a9b3109a40aebcdf22cc451b699a", kill_on_drop: false }`
[INFO] [stdout] f47ff908ea94813c12a68654e76b9cb07135a9b3109a40aebcdf22cc451b699a
