[INFO] cloning repository https://github.com/peakay/path-finding-experiment
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/peakay/path-finding-experiment" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpeakay%2Fpath-finding-experiment", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpeakay%2Fpath-finding-experiment'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b9f0a91e17e5d8ae522e7f72630ec9fd28ea8f25
[INFO] checking peakay/path-finding-experiment against try#943e2200e35c3825486c4671b6cab0107a07f8c1 for pr-148952
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpeakay%2Fpath-finding-experiment" "/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/peakay/path-finding-experiment
[INFO] finished tweaking git repo https://github.com/peakay/path-finding-experiment
[INFO] tweaked toml for git repo https://github.com/peakay/path-finding-experiment written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/peakay/path-finding-experiment on toolchain 943e2200e35c3825486c4671b6cab0107a07f8c1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+943e2200e35c3825486c4671b6cab0107a07f8c1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/peakay/path-finding-experiment 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" "+943e2200e35c3825486c4671b6cab0107a07f8c1" "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" "+943e2200e35c3825486c4671b6cab0107a07f8c1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2b29152fd7fa7186ba8b60b3ea0553143fa88e1f6c9a3416e424c81e8b7421a7
[INFO] running `Command { std: "docker" "start" "-a" "2b29152fd7fa7186ba8b60b3ea0553143fa88e1f6c9a3416e424c81e8b7421a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2b29152fd7fa7186ba8b60b3ea0553143fa88e1f6c9a3416e424c81e8b7421a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2b29152fd7fa7186ba8b60b3ea0553143fa88e1f6c9a3416e424c81e8b7421a7", kill_on_drop: false }`
[INFO] [stdout] 2b29152fd7fa7186ba8b60b3ea0553143fa88e1f6c9a3416e424c81e8b7421a7
[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" "+943e2200e35c3825486c4671b6cab0107a07f8c1" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9195cc0db848390edb0749e03c6681e1d9f6a398f0a1946f5e21504bf115e52f
[INFO] running `Command { std: "docker" "start" "-a" "9195cc0db848390edb0749e03c6681e1d9f6a398f0a1946f5e21504bf115e52f", kill_on_drop: false }`
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling wayland-scanner v0.31.7
[INFO] [stderr]    Compiling indexmap v2.12.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling generic-array v0.14.9
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.104
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling rustix v0.37.28
[INFO] [stderr]     Checking waker-fn v1.2.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]    Compiling async-fs v1.6.0
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]     Checking linux-raw-sys v0.3.8
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]    Compiling openssl-sys v0.9.110
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]     Checking async-executor v1.13.3
[INFO] [stderr]     Checking async-broadcast v0.5.1
[INFO] [stderr]     Checking xdg-home v1.3.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling smithay-client-toolkit v0.18.1
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling bumpalo v3.19.0
[INFO] [stderr]     Checking mio v1.1.0
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]     Checking accesskit v0.12.3
[INFO] [stderr]    Compiling wasm-bindgen v0.2.104
[INFO] [stderr]    Compiling winit v0.29.15
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]    Compiling openssl v0.10.74
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling glutin_glx_sys v0.5.0
[INFO] [stderr]     Checking tokio v1.48.0
[INFO] [stderr]    Compiling glutin_egl_sys v0.6.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking accesskit_consumer v0.16.1
[INFO] [stderr]    Compiling glutin v0.31.3
[INFO] [stderr]     Checking async-once-cell v0.5.4
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]     Checking wayland-client v0.31.11
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling glutin-winit v0.4.2
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stderr]     Checking web-time v0.2.4
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr]     Checking wayland-protocols v0.31.2
[INFO] [stderr]     Checking wayland-cursor v0.31.11
[INFO] [stderr]     Checking wayland-protocols v0.32.9
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling zvariant_utils v1.0.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.104
[INFO] [stderr]    Compiling zvariant_derive v3.15.2
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling zbus_macros v3.15.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking calloop v0.12.4
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.104
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking tokio-util v0.7.16
[INFO] [stderr]    Compiling pk-chat-agent v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]     Checking calloop-wayland-source v0.2.0
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking emath v0.28.1
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking image v0.25.8
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking wayland-protocols-wlr v0.2.0
[INFO] [stderr]     Checking wayland-protocols-plasma v0.2.0
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.104
[INFO] [stderr]     Checking ecolor v0.28.1
[INFO] [stderr]     Checking zerovec v0.11.4
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking epaint v0.28.1
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.3
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking zvariant v3.15.2
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking js-sys v0.3.81
[INFO] [stderr]     Checking console_error_panic_hook v0.1.7
[INFO] [stderr]     Checking egui v0.28.1
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.9
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking zbus_names v2.6.1
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking sctk-adwaita v0.8.3
[INFO] [stderr]     Checking zbus v3.15.2
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking webbrowser v1.0.6
[INFO] [stderr]     Checking smithay-clipboard v0.7.2
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking wasm-bindgen-futures v0.4.54
[INFO] [stderr]     Checking web-sys v0.3.81
[INFO] [stderr]     Checking egui_glow v0.28.1
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking atspi-common v0.3.0
[INFO] [stderr]     Checking atspi-proxies v0.3.0
[INFO] [stderr]     Checking atspi-connection v0.3.0
[INFO] [stderr]     Checking atspi v0.19.0
[INFO] [stderr]     Checking accesskit_unix v0.6.2
[INFO] [stderr]     Checking accesskit_winit v0.16.1
[INFO] [stderr]     Checking egui-winit v0.28.1
[INFO] [stderr]     Checking eframe v0.28.1
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/editor/editor_input.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |         map: &mut GridMap,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/editor/editor_input.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |         map: &mut GridMap,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LogEntry` is never used
[INFO] [stdout]   --> src/agent.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum LogEntry {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]   --> src/agent.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum Direction {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_str`, `as_str`, and `apply` are never used
[INFO] [stdout]   --> src/agent.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl Direction {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 50 |     /// Parse direction from string
[INFO] [stdout] 51 |     pub fn from_str(s: &str) -> Result<Self, String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn apply(&self, x: i32, y: i32, map_width: i32, map_height: i32) -> (i32, i32) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MovementStatus` is never used
[INFO] [stdout]   --> src/agent.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub enum MovementStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Agent` is never constructed
[INFO] [stdout]   --> src/agent.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct Agent {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/agent.rs:125:12
[INFO] [stdout]      |
[INFO] [stdout]  124 | impl Agent {
[INFO] [stdout]      | ---------- associated items in this implementation
[INFO] [stdout]  125 |     pub fn new(id: u32, name: impl Into<String>, x: usize, y: usize) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  154 |     pub fn pos(&self) -> (usize, usize) {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  158 |     pub fn set_pos(&mut self, x: usize, y: usize) {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  164 |     pub fn get_logs(&self) -> &[LogEntry] {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  169 |     pub fn log(&mut self, entry: LogEntry) {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  175 |     pub fn log_info(&mut self, message: impl Into<String>) {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  180 |     pub fn get_chat_history(&self) -> &[Message] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  185 |     pub fn clear_chat_history(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  190 |     pub fn add_assistant_tool_call(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  215 |     pub fn add_tool_result(&mut self, tool_call_id: String, tool_name: String, result: String) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  226 |     pub fn generate_system_prompt(&self, map: &GridMap) -> String {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  266 |     fn map_state_json(&self, map: &GridMap) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  271 |     fn map_state_json_with_params(&self, map: &GridMap, area: Option<(usize, usize)>, visibility: Option<usize>) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  377 |     fn register_default_tools(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  517 |     pub fn register_tool(&mut self, tool: Tool) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  522 |     pub fn get_tools(&self) -> Vec<Tool> {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  531 |     pub fn get_all_tools(&self) -> &[Tool] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  536 |     pub fn enable_tool(&mut self, name: &str) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  546 |     pub fn disable_tool(&mut self, name: &str) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  551 |     pub fn is_tool_enabled(&self, name: &str) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  556 |     pub fn get_enabled_tools(&self) -> Vec<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  561 |     pub fn execute_instruction(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  712 |     pub fn handle_tool_call(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  798 |     pub fn execute_move_step(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  858 |     fn handle_get_position_tool(&self) -> Result<String, String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  867 |     fn handle_get_available_directions_tool(&self, map: &GridMap) -> Result<String, String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  907 |     fn handle_get_bearings_tool(&mut self, args: Value, map: &GridMap) -> Result<String, String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  997 |     fn handle_move_agent_tool(&mut self, args: Value, _map: &GridMap) -> Result<String, String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1046 |     pub fn take_pending_moves(&mut self) -> Vec<Direction> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1055 |     pub fn is_moving(&self) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1060 |     pub fn max_history_messages(&self) -> usize {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1065 |     pub fn set_max_history_messages(&mut self, max: usize) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1070 |     pub fn get_movement_history(&self) -> &[(usize, usize)] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1075 |     pub fn clear_movement_history(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1082 |     pub fn has_visited(&self, x: usize, y: usize) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1087 |     pub fn generate_navigation_hint(&self, map: &GridMap, had_errors: bool) -> Option<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1151 |     pub fn process_movement_step(&mut self, map: &mut GridMap) -> MovementStatus {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AnimationController` is never constructed
[INFO] [stdout]  --> src/animation.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct AnimationController {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, `get_thinking_text`, and `get_processing_text` are never used
[INFO] [stdout]    --> src/animation.rs:10:12
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl AnimationController {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout]  10 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  18 |     pub fn update(&mut self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn get_thinking_text(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn get_processing_text(&self, event_count: usize) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TICK_RATE` is never used
[INFO] [stdout]   --> src/app.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const TICK_RATE: Duration = Duration::from_millis(500);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MyApp` is never constructed
[INFO] [stdout]   --> src/app.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct MyApp {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `load_api_key_from_storage`, `save_api_key_to_storage`, `new`, `process_tick`, and `process_ticks` are never used
[INFO] [stdout]    --> src/app.rs:67:8
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl MyApp {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  66 |     /// Load OpenRouter API key from localStorage
[INFO] [stdout]  67 |     fn load_api_key_from_storage() -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     fn save_api_key_to_storage(api_key: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn new(cc: &eframe::CreationContext<'_>, openrouter_api_key: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn process_tick(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     fn process_ticks(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `draw_agent_panel`, `draw_agent_controls`, `draw_tool_toggles`, `draw_tile_info`, `draw_activity_log`, and `draw_grid_panel` are never used
[INFO] [stdout]    --> src/app.rs:346:8
[INFO] [stdout]     |
[INFO] [stdout] 345 | impl MyApp {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 346 |     fn draw_agent_panel(&mut self, ui: &mut egui::Ui) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn draw_agent_controls(&mut self, ui: &mut egui::Ui) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 496 |     fn draw_tool_toggles(&mut self, ui: &mut egui::Ui, is_processing: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 535 |     fn draw_tile_info(&mut self, ui: &mut egui::Ui) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     fn draw_activity_log(&mut self, ui: &mut egui::Ui) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 543 |     fn draw_grid_panel(&mut self, ui: &mut egui::Ui) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BoardInput` is never constructed
[INFO] [stdout]  --> src/board/board_input.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct BoardInput;
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `handle_input` is never used
[INFO] [stdout]   --> src/board/board_input.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl BoardInput {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 12 |     /// Handle board input - dispatches to edit or play mode handlers
[INFO] [stdout] 13 |     pub fn handle_input(
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BoardRenderer` is never constructed
[INFO] [stdout]  --> src/board/board_renderer.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct BoardRenderer;
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `render` and `screen_to_grid` are never used
[INFO] [stdout]    --> src/board/board_renderer.rs:12:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl BoardRenderer {
[INFO] [stdout]     | ------------------ associated functions in this implementation
[INFO] [stdout]  11 |     /// Render the game board with tiles, grid, agent, and trail
[INFO] [stdout]  12 |     pub fn render(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn screen_to_grid(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EditorInput` is never constructed
[INFO] [stdout]  --> src/editor/editor_input.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct EditorInput;
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `handle_edit_input` and `handle_play_input` are never used
[INFO] [stdout]   --> src/editor/editor_input.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EditorInput {
[INFO] [stdout]    | ---------------- associated functions in this implementation
[INFO] [stdout]  9 |     /// Handle board input during edit mode
[INFO] [stdout] 10 |     pub fn handle_edit_input(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn handle_play_input(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MapJson` is never constructed
[INFO] [stdout]   --> src/editor/editor_operations.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct MapJson {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EditorOperations` is never constructed
[INFO] [stdout]   --> src/editor/editor_operations.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct EditorOperations;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `resize_map`, `fill_all`, `copy_map_to_clipboard`, and `copy_to_clipboard` are never used
[INFO] [stdout]   --> src/editor/editor_operations.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl EditorOperations {
[INFO] [stdout]    | --------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn resize_map(
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn fill_all(map: &mut GridMap, tile: TileKind) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn copy_map_to_clipboard(map: &GridMap, editor_state: &EditorState, agent: &mut Agent) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn copy_to_clipboard(text: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EditorState` is never constructed
[INFO] [stdout]  --> src/editor/editor_state.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct EditorState {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/editor/editor_state.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl EditorState {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 28 |     pub fn new(initial_map_width: usize, initial_map_height: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn toggle_edit_mode(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn set_selected_tile(&mut self, tile: TileKind) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn toggle_placing_agent(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn exit_placement_mode(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn set_target_dimensions(&mut self, width: usize, height: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn initialize_from_map(&mut self, map: &crate::map::GridMap) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EditorUI` is never constructed
[INFO] [stdout]  --> src/editor/editor_ui.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct EditorUI;
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `draw_edit_controls` and `draw_edit_mode_toggle` are never used
[INFO] [stdout]    --> src/editor/editor_ui.rs:12:12
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl EditorUI {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  12 |     pub fn draw_edit_controls(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn draw_edit_mode_toggle(ui: &mut egui::Ui, editor_state: &mut EditorState) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EventId` is never constructed
[INFO] [stdout]  --> src/events.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct EventId(u64);
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `EVENT_COUNTER` is never used
[INFO] [stdout]   --> src/events.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | static EVENT_COUNTER: Mutex<u64> = Mutex::new(0);
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/events.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl EventId {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 13 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EventStatus` is never used
[INFO] [stdout]   --> src/events.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum EventStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Event` is never used
[INFO] [stdout]   --> src/events.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum Event {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScheduledEvent` is never constructed
[INFO] [stdout]   --> src/events.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct ScheduledEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `immediate`, and `is_ready` are never used
[INFO] [stdout]   --> src/events.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl ScheduledEvent {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 54 |     pub fn new(event: Event, delay: Duration) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn immediate(event: Event) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn is_ready(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EventQueue` is never constructed
[INFO] [stdout]   --> src/events.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct EventQueue {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/events.rs:80:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl EventQueue {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  80 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn submit(&self, event: Event, delay: Duration) -> EventId {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn submit_immediate(&self, event: Event) -> EventId {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn submit_sequence(&self, events: Vec<Event>, delay_between: Duration) -> Vec<EventId> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn cancel_events(&self, event_ids: &[EventId]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn cancel_agent_events(&self, agent_id: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn pop_ready(&self) -> Option<ScheduledEvent> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn complete(&self, id: EventId, result: Result<(), String>) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn is_completed(&self, id: EventId) -> Option<Result<(), String>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn pending_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn clear(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PendingToolExecution` is never constructed
[INFO] [stdout]    --> src/events.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub struct PendingToolExecution {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_complete`, and `get_event_results` are never used
[INFO] [stdout]    --> src/events.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout] 206 | impl PendingToolExecution {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout] 207 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn is_complete(&self, event_queue: &EventQueue) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn get_event_results(&self, event_queue: &EventQueue) -> Vec<(EventId, Result<(), String>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TileKind` is never used
[INFO] [stdout]  --> src/map.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum TileKind {
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MapMetadata` is never constructed
[INFO] [stdout]   --> src/map.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct MapMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GridMap` is never constructed
[INFO] [stdout]   --> src/map.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct GridMap {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/map.rs:59:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl GridMap {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  59 |     pub fn new(width: usize, height: usize, fill: TileKind) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn width(&self) -> usize { self.width }
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn height(&self) -> usize { self.height }
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn in_bounds(&self, x: usize, y: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn get(&self, x: usize, y: usize) -> Option<&TileKind> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn set(&mut self, x: usize, y: usize, kind: TileKind) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn clear(&mut self, kind: TileKind) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn fill_rect(&mut self, x: usize, y: usize, w: usize, h: usize, kind: TileKind) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn is_traversable(&self, x: usize, y: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn tiles(&self) -> &Vec<Vec<TileKind>> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_traversable`, `is_blocking`, and `name` are never used
[INFO] [stdout]    --> src/map.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl TileKind {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 124 |     /// Returns true if this tile can be walked on by agents
[INFO] [stdout] 125 |     pub fn is_traversable(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn is_blocking(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn name(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MapType` is never used
[INFO] [stdout]  --> /opt/rustwide/target/debug/build/pk-chat-agent-103739f162ae559d/out/map_registry.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum MapType {
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `all`, `name`, `description`, and `create_map` are never used
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/pk-chat-agent-103739f162ae559d/out/map_registry.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl MapType {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 13 |     pub fn all() -> Vec<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn name(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn description(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn create_map(&self, _width: usize, _height: usize) -> Result<crate::map::GridMap, Box<dyn std::error::Error>> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolCall` is never constructed
[INFO] [stdout]   --> src/openrouter.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct ToolCall {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolCallFunction` is never constructed
[INFO] [stdout]   --> src/openrouter.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ToolCallFunction {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Message` is never constructed
[INFO] [stdout]   --> src/openrouter.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Message {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tool` is never constructed
[INFO] [stdout]   --> src/openrouter.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Tool {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Function` is never constructed
[INFO] [stdout]   --> src/openrouter.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct Function {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OpenRouterEvent` is never used
[INFO] [stdout]   --> src/openrouter.rs:51:10
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub enum OpenRouterEvent {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_router_event_stream` is never used
[INFO] [stdout]   --> src/openrouter.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn open_router_event_stream(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_tree_sprite` is never used
[INFO] [stdout]  --> src/rendering/sprites.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn generate_tree_sprite(size: usize) -> egui::ColorImage {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blit_disc` is never used
[INFO] [stdout]   --> src/rendering/sprites.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn blit_disc(img: &mut egui::ColorImage, cx: f32, cy: f32, r: f32, col: egui::Color32) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_tree_sprite` is never used
[INFO] [stdout]    --> src/rendering/sprites.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn draw_tree_sprite(painter: &Painter, rect: Rect, tex: &egui::TextureHandle) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_grass_tile` is never used
[INFO] [stdout]  --> src/rendering/tiles.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn draw_grass_tile(painter: &Painter, rect: Rect) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_water_tile` is never used
[INFO] [stdout]   --> src/rendering/tiles.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn draw_water_tile(painter: &Painter, rect: Rect) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_sand_tile` is never used
[INFO] [stdout]   --> src/rendering/tiles.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn draw_sand_tile(painter: &Painter, rect: Rect) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_wall_tile` is never used
[INFO] [stdout]   --> src/rendering/tiles.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn draw_wall_tile(painter: &Painter, rect: Rect) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_log_entry` is never used
[INFO] [stdout]  --> src/rendering/ui.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn draw_log_entry(ui: &mut egui::Ui, entry: &LogEntry) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolExecutionManager` is never constructed
[INFO] [stdout]  --> src/tool_execution/tool_execution_manager.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct ToolExecutionManager {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tool_execution/tool_execution_manager.rs:21:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl ToolExecutionManager {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout]  21 |     pub fn new(tick_rate: Duration) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  30 |     pub fn get_tool_callbacks(&self) -> Arc<Mutex<Vec<(u32, String, Value)>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub fn process_tool_callbacks(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn process_pending_executions(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn has_pending_executions(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn pending_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn clear_callbacks(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AgentPanel` is never constructed
[INFO] [stdout]  --> src/ui/agent_panel.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct AgentPanel;
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `draw_activity_log`, `is_processing`, `draw_processing_status`, and `draw_thinking_status` are never used
[INFO] [stdout]   --> src/ui/agent_panel.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl AgentPanel {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] 12 |     /// Draw the activity log
[INFO] [stdout] 13 |     pub fn draw_activity_log(ui: &mut egui::Ui, agent: &Agent) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn is_processing(
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn draw_processing_status(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn draw_thinking_status(ui: &mut egui::Ui, animation_controller: &AnimationController) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TileInfoPanel` is never constructed
[INFO] [stdout]  --> src/ui/tile_info_panel.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TileInfoPanel;
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `draw` is never used
[INFO] [stdout]  --> src/ui/tile_info_panel.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl TileInfoPanel {
[INFO] [stdout]   | ------------------ associated function in this implementation
[INFO] [stdout] 9 |     pub fn draw(
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LogEntry` is never used
[INFO] [stdout]   --> src/agent.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum LogEntry {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]   --> src/agent.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum Direction {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_str`, `as_str`, and `apply` are never used
[INFO] [stdout]   --> src/agent.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl Direction {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 50 |     /// Parse direction from string
[INFO] [stdout] 51 |     pub fn from_str(s: &str) -> Result<Self, String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn apply(&self, x: i32, y: i32, map_width: i32, map_height: i32) -> (i32, i32) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MovementStatus` is never used
[INFO] [stdout]   --> src/agent.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub enum MovementStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Agent` is never constructed
[INFO] [stdout]   --> src/agent.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct Agent {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/agent.rs:125:12
[INFO] [stdout]      |
[INFO] [stdout]  124 | impl Agent {
[INFO] [stdout]      | ---------- associated items in this implementation
[INFO] [stdout]  125 |     pub fn new(id: u32, name: impl Into<String>, x: usize, y: usize) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  154 |     pub fn pos(&self) -> (usize, usize) {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  158 |     pub fn set_pos(&mut self, x: usize, y: usize) {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  164 |     pub fn get_logs(&self) -> &[LogEntry] {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  169 |     pub fn log(&mut self, entry: LogEntry) {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  175 |     pub fn log_info(&mut self, message: impl Into<String>) {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  180 |     pub fn get_chat_history(&self) -> &[Message] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  185 |     pub fn clear_chat_history(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  190 |     pub fn add_assistant_tool_call(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  215 |     pub fn add_tool_result(&mut self, tool_call_id: String, tool_name: String, result: String) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  226 |     pub fn generate_system_prompt(&self, map: &GridMap) -> String {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  266 |     fn map_state_json(&self, map: &GridMap) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  271 |     fn map_state_json_with_params(&self, map: &GridMap, area: Option<(usize, usize)>, visibility: Option<usize>) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  377 |     fn register_default_tools(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  517 |     pub fn register_tool(&mut self, tool: Tool) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  522 |     pub fn get_tools(&self) -> Vec<Tool> {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  531 |     pub fn get_all_tools(&self) -> &[Tool] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  536 |     pub fn enable_tool(&mut self, name: &str) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  546 |     pub fn disable_tool(&mut self, name: &str) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  551 |     pub fn is_tool_enabled(&self, name: &str) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  556 |     pub fn get_enabled_tools(&self) -> Vec<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  561 |     pub fn execute_instruction(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  712 |     pub fn handle_tool_call(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  798 |     pub fn execute_move_step(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  858 |     fn handle_get_position_tool(&self) -> Result<String, String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  867 |     fn handle_get_available_directions_tool(&self, map: &GridMap) -> Result<String, String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  907 |     fn handle_get_bearings_tool(&mut self, args: Value, map: &GridMap) -> Result<String, String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  997 |     fn handle_move_agent_tool(&mut self, args: Value, _map: &GridMap) -> Result<String, String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1046 |     pub fn take_pending_moves(&mut self) -> Vec<Direction> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1055 |     pub fn is_moving(&self) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1060 |     pub fn max_history_messages(&self) -> usize {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1065 |     pub fn set_max_history_messages(&mut self, max: usize) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1070 |     pub fn get_movement_history(&self) -> &[(usize, usize)] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1075 |     pub fn clear_movement_history(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1082 |     pub fn has_visited(&self, x: usize, y: usize) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1087 |     pub fn generate_navigation_hint(&self, map: &GridMap, had_errors: bool) -> Option<String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1151 |     pub fn process_movement_step(&mut self, map: &mut GridMap) -> MovementStatus {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AnimationController` is never constructed
[INFO] [stdout]  --> src/animation.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct AnimationController {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, `get_thinking_text`, and `get_processing_text` are never used
[INFO] [stdout]    --> src/animation.rs:10:12
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl AnimationController {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout]  10 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  18 |     pub fn update(&mut self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn get_thinking_text(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn get_processing_text(&self, event_count: usize) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TICK_RATE` is never used
[INFO] [stdout]   --> src/app.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const TICK_RATE: Duration = Duration::from_millis(500);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MyApp` is never constructed
[INFO] [stdout]   --> src/app.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct MyApp {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `load_api_key_from_storage`, `save_api_key_to_storage`, `new`, `process_tick`, and `process_ticks` are never used
[INFO] [stdout]    --> src/app.rs:67:8
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl MyApp {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  66 |     /// Load OpenRouter API key from localStorage
[INFO] [stdout]  67 |     fn load_api_key_from_storage() -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     fn save_api_key_to_storage(api_key: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn new(cc: &eframe::CreationContext<'_>, openrouter_api_key: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn process_tick(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     fn process_ticks(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `draw_agent_panel`, `draw_agent_controls`, `draw_tool_toggles`, `draw_tile_info`, `draw_activity_log`, and `draw_grid_panel` are never used
[INFO] [stdout]    --> src/app.rs:346:8
[INFO] [stdout]     |
[INFO] [stdout] 345 | impl MyApp {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 346 |     fn draw_agent_panel(&mut self, ui: &mut egui::Ui) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn draw_agent_controls(&mut self, ui: &mut egui::Ui) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 496 |     fn draw_tool_toggles(&mut self, ui: &mut egui::Ui, is_processing: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 535 |     fn draw_tile_info(&mut self, ui: &mut egui::Ui) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     fn draw_activity_log(&mut self, ui: &mut egui::Ui) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 543 |     fn draw_grid_panel(&mut self, ui: &mut egui::Ui) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BoardInput` is never constructed
[INFO] [stdout]  --> src/board/board_input.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct BoardInput;
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `handle_input` is never used
[INFO] [stdout]   --> src/board/board_input.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl BoardInput {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 12 |     /// Handle board input - dispatches to edit or play mode handlers
[INFO] [stdout] 13 |     pub fn handle_input(
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BoardRenderer` is never constructed
[INFO] [stdout]  --> src/board/board_renderer.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct BoardRenderer;
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `render` and `screen_to_grid` are never used
[INFO] [stdout]    --> src/board/board_renderer.rs:12:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl BoardRenderer {
[INFO] [stdout]     | ------------------ associated functions in this implementation
[INFO] [stdout]  11 |     /// Render the game board with tiles, grid, agent, and trail
[INFO] [stdout]  12 |     pub fn render(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn screen_to_grid(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EditorInput` is never constructed
[INFO] [stdout]  --> src/editor/editor_input.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct EditorInput;
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `handle_edit_input` and `handle_play_input` are never used
[INFO] [stdout]   --> src/editor/editor_input.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EditorInput {
[INFO] [stdout]    | ---------------- associated functions in this implementation
[INFO] [stdout]  9 |     /// Handle board input during edit mode
[INFO] [stdout] 10 |     pub fn handle_edit_input(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn handle_play_input(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MapJson` is never constructed
[INFO] [stdout]   --> src/editor/editor_operations.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct MapJson {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EditorOperations` is never constructed
[INFO] [stdout]   --> src/editor/editor_operations.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct EditorOperations;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `resize_map`, `fill_all`, `copy_map_to_clipboard`, and `copy_to_clipboard` are never used
[INFO] [stdout]   --> src/editor/editor_operations.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl EditorOperations {
[INFO] [stdout]    | --------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn resize_map(
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn fill_all(map: &mut GridMap, tile: TileKind) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn copy_map_to_clipboard(map: &GridMap, editor_state: &EditorState, agent: &mut Agent) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn copy_to_clipboard(text: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EditorState` is never constructed
[INFO] [stdout]  --> src/editor/editor_state.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct EditorState {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/editor/editor_state.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl EditorState {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 28 |     pub fn new(initial_map_width: usize, initial_map_height: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn toggle_edit_mode(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn set_selected_tile(&mut self, tile: TileKind) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn toggle_placing_agent(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn exit_placement_mode(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn set_target_dimensions(&mut self, width: usize, height: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn initialize_from_map(&mut self, map: &crate::map::GridMap) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EditorUI` is never constructed
[INFO] [stdout]  --> src/editor/editor_ui.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct EditorUI;
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `draw_edit_controls` and `draw_edit_mode_toggle` are never used
[INFO] [stdout]    --> src/editor/editor_ui.rs:12:12
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl EditorUI {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  12 |     pub fn draw_edit_controls(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn draw_edit_mode_toggle(ui: &mut egui::Ui, editor_state: &mut EditorState) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EventId` is never constructed
[INFO] [stdout]  --> src/events.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct EventId(u64);
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `EVENT_COUNTER` is never used
[INFO] [stdout]   --> src/events.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | static EVENT_COUNTER: Mutex<u64> = Mutex::new(0);
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/events.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl EventId {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 13 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EventStatus` is never used
[INFO] [stdout]   --> src/events.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum EventStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Event` is never used
[INFO] [stdout]   --> src/events.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum Event {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScheduledEvent` is never constructed
[INFO] [stdout]   --> src/events.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct ScheduledEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `immediate`, and `is_ready` are never used
[INFO] [stdout]   --> src/events.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl ScheduledEvent {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 54 |     pub fn new(event: Event, delay: Duration) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn immediate(event: Event) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn is_ready(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EventQueue` is never constructed
[INFO] [stdout]   --> src/events.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct EventQueue {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/events.rs:80:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl EventQueue {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  80 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn submit(&self, event: Event, delay: Duration) -> EventId {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn submit_immediate(&self, event: Event) -> EventId {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn submit_sequence(&self, events: Vec<Event>, delay_between: Duration) -> Vec<EventId> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn cancel_events(&self, event_ids: &[EventId]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn cancel_agent_events(&self, agent_id: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn pop_ready(&self) -> Option<ScheduledEvent> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn complete(&self, id: EventId, result: Result<(), String>) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn is_completed(&self, id: EventId) -> Option<Result<(), String>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn pending_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn clear(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PendingToolExecution` is never constructed
[INFO] [stdout]    --> src/events.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub struct PendingToolExecution {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_complete`, and `get_event_results` are never used
[INFO] [stdout]    --> src/events.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout] 206 | impl PendingToolExecution {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout] 207 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn is_complete(&self, event_queue: &EventQueue) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn get_event_results(&self, event_queue: &EventQueue) -> Vec<(EventId, Result<(), String>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TileKind` is never used
[INFO] [stdout]  --> src/map.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum TileKind {
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MapMetadata` is never constructed
[INFO] [stdout]   --> src/map.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct MapMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GridMap` is never constructed
[INFO] [stdout]   --> src/map.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct GridMap {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/map.rs:59:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl GridMap {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  59 |     pub fn new(width: usize, height: usize, fill: TileKind) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn width(&self) -> usize { self.width }
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn height(&self) -> usize { self.height }
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn in_bounds(&self, x: usize, y: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn get(&self, x: usize, y: usize) -> Option<&TileKind> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn set(&mut self, x: usize, y: usize, kind: TileKind) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn clear(&mut self, kind: TileKind) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn fill_rect(&mut self, x: usize, y: usize, w: usize, h: usize, kind: TileKind) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn is_traversable(&self, x: usize, y: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn tiles(&self) -> &Vec<Vec<TileKind>> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_traversable`, `is_blocking`, and `name` are never used
[INFO] [stdout]    --> src/map.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl TileKind {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 124 |     /// Returns true if this tile can be walked on by agents
[INFO] [stdout] 125 |     pub fn is_traversable(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn is_blocking(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn name(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MapType` is never used
[INFO] [stdout]  --> /opt/rustwide/target/debug/build/pk-chat-agent-103739f162ae559d/out/map_registry.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum MapType {
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `all`, `name`, `description`, and `create_map` are never used
[INFO] [stdout]   --> /opt/rustwide/target/debug/build/pk-chat-agent-103739f162ae559d/out/map_registry.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl MapType {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 13 |     pub fn all() -> Vec<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn name(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn description(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn create_map(&self, _width: usize, _height: usize) -> Result<crate::map::GridMap, Box<dyn std::error::Error>> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolCall` is never constructed
[INFO] [stdout]   --> src/openrouter.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct ToolCall {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolCallFunction` is never constructed
[INFO] [stdout]   --> src/openrouter.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ToolCallFunction {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Message` is never constructed
[INFO] [stdout]   --> src/openrouter.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Message {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tool` is never constructed
[INFO] [stdout]   --> src/openrouter.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Tool {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Function` is never constructed
[INFO] [stdout]   --> src/openrouter.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct Function {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OpenRouterEvent` is never used
[INFO] [stdout]   --> src/openrouter.rs:51:10
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub enum OpenRouterEvent {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_router_event_stream` is never used
[INFO] [stdout]   --> src/openrouter.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn open_router_event_stream(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_tree_sprite` is never used
[INFO] [stdout]  --> src/rendering/sprites.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn generate_tree_sprite(size: usize) -> egui::ColorImage {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blit_disc` is never used
[INFO] [stdout]   --> src/rendering/sprites.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn blit_disc(img: &mut egui::ColorImage, cx: f32, cy: f32, r: f32, col: egui::Color32) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_tree_sprite` is never used
[INFO] [stdout]    --> src/rendering/sprites.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn draw_tree_sprite(painter: &Painter, rect: Rect, tex: &egui::TextureHandle) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_grass_tile` is never used
[INFO] [stdout]  --> src/rendering/tiles.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn draw_grass_tile(painter: &Painter, rect: Rect) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_water_tile` is never used
[INFO] [stdout]   --> src/rendering/tiles.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn draw_water_tile(painter: &Painter, rect: Rect) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_sand_tile` is never used
[INFO] [stdout]   --> src/rendering/tiles.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn draw_sand_tile(painter: &Painter, rect: Rect) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_wall_tile` is never used
[INFO] [stdout]   --> src/rendering/tiles.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn draw_wall_tile(painter: &Painter, rect: Rect) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_log_entry` is never used
[INFO] [stdout]  --> src/rendering/ui.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn draw_log_entry(ui: &mut egui::Ui, entry: &LogEntry) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolExecutionManager` is never constructed
[INFO] [stdout]  --> src/tool_execution/tool_execution_manager.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct ToolExecutionManager {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tool_execution/tool_execution_manager.rs:21:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl ToolExecutionManager {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout]  21 |     pub fn new(tick_rate: Duration) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  30 |     pub fn get_tool_callbacks(&self) -> Arc<Mutex<Vec<(u32, String, Value)>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub fn process_tool_callbacks(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn process_pending_executions(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn has_pending_executions(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn pending_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn clear_callbacks(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AgentPanel` is never constructed
[INFO] [stdout]  --> src/ui/agent_panel.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct AgentPanel;
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `draw_activity_log`, `is_processing`, `draw_processing_status`, and `draw_thinking_status` are never used
[INFO] [stdout]   --> src/ui/agent_panel.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl AgentPanel {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] 12 |     /// Draw the activity log
[INFO] [stdout] 13 |     pub fn draw_activity_log(ui: &mut egui::Ui, agent: &Agent) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn is_processing(
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn draw_processing_status(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn draw_thinking_status(ui: &mut egui::Ui, animation_controller: &AnimationController) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TileInfoPanel` is never constructed
[INFO] [stdout]  --> src/ui/tile_info_panel.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TileInfoPanel;
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `draw` is never used
[INFO] [stdout]  --> src/ui/tile_info_panel.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl TileInfoPanel {
[INFO] [stdout]   | ------------------ associated function in this implementation
[INFO] [stdout] 9 |     pub fn draw(
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 17s
[INFO] running `Command { std: "docker" "inspect" "9195cc0db848390edb0749e03c6681e1d9f6a398f0a1946f5e21504bf115e52f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9195cc0db848390edb0749e03c6681e1d9f6a398f0a1946f5e21504bf115e52f", kill_on_drop: false }`
[INFO] [stdout] 9195cc0db848390edb0749e03c6681e1d9f6a398f0a1946f5e21504bf115e52f
