[INFO] cloning repository https://github.com/jiayan-xu/agent-core
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jiayan-xu/agent-core" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjiayan-xu%2Fagent-core", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjiayan-xu%2Fagent-core'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f02433c16e4b0048e3ea220985cce0023ff15796
[INFO] checking jiayan-xu/agent-core against 656a9da186dacaf3bf8f7f7296a825d256cb4ae3 for pr-158915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjiayan-xu%2Fagent-core" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jiayan-xu/agent-core
[INFO] finished tweaking git repo https://github.com/jiayan-xu/agent-core
[INFO] tweaked toml for git repo https://github.com/jiayan-xu/agent-core written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jiayan-xu/agent-core on toolchain 656a9da186dacaf3bf8f7f7296a825d256cb4ae3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+656a9da186dacaf3bf8f7f7296a825d256cb4ae3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jiayan-xu/agent-core 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" "+656a9da186dacaf3bf8f7f7296a825d256cb4ae3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded windows-core v0.59.0
[INFO] [stderr]   Downloaded webview2-com v0.35.0
[INFO] [stderr]   Downloaded wry v0.49.0
[INFO] [stderr]   Downloaded cc v1.2.65
[INFO] [stderr]   Downloaded cocoa-foundation v0.2.1
[INFO] [stderr]   Downloaded cocoa v0.26.1
[INFO] [stderr]   Downloaded open v5.3.6
[INFO] [stderr]   Downloaded regex-automata v0.4.15
[INFO] [stderr]   Downloaded tao v0.31.1
[INFO] [stderr]   Downloaded webview2-com-sys v0.35.0
[INFO] [stderr]   Downloaded windows v0.59.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 27efa1255e04108ab3112560d6ca938e0116d3360ee7a9aeb09dce42e0fb4577
[INFO] running `Command { std: "docker" "start" "27efa1255e04108ab3112560d6ca938e0116d3360ee7a9aeb09dce42e0fb4577", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "27efa1255e04108ab3112560d6ca938e0116d3360ee7a9aeb09dce42e0fb4577", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "27efa1255e04108ab3112560d6ca938e0116d3360ee7a9aeb09dce42e0fb4577" "/opt/rustwide/cargo-home/bin/cargo" "+656a9da186dacaf3bf8f7f7296a825d256cb4ae3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "27efa1255e04108ab3112560d6ca938e0116d3360ee7a9aeb09dce42e0fb4577", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "27efa1255e04108ab3112560d6ca938e0116d3360ee7a9aeb09dce42e0fb4577" "/opt/rustwide/cargo-home/bin/cargo" "+656a9da186dacaf3bf8f7f7296a825d256cb4ae3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking memchr v2.8.2
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking futures-task v0.3.32
[INFO] [stderr]     Checking bitflags v2.13.0
[INFO] [stderr]     Checking bytes v1.12.0
[INFO] [stderr]     Checking log v0.4.33
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling cc v1.2.65
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking mio v1.2.1
[INFO] [stderr]     Checking socket2 v0.6.4
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling zerocopy v0.8.52
[INFO] [stderr]    Compiling cfg-expr v0.15.8
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling x11 v2.21.0
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling openssl v0.10.81
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling gtk v0.18.2
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]     Checking typenum v1.20.1
[INFO] [stderr]     Checking http v1.4.2
[INFO] [stderr]     Checking ipnet v2.12.0
[INFO] [stderr]     Checking openssl-probe v0.2.1
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling time-macros v0.2.31
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]     Checking regex-syntax v0.8.11
[INFO] [stderr]    Compiling field-offset v0.3.6
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking is-docker v0.2.0
[INFO] [stderr]     Checking zeroize v1.9.0
[INFO] [stderr]     Checking dpi v0.1.2
[INFO] [stderr]    Compiling wry v0.49.0
[INFO] [stderr]     Checking winnow v0.5.40
[INFO] [stderr]     Checking pxfm v0.1.29
[INFO] [stderr]     Checking rustls-pki-types v1.14.1
[INFO] [stderr]     Checking is-wsl v0.4.0
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking thread_local v1.1.10
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]    Compiling openssl-sys v0.9.117
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking regex-automata v0.4.15
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking open v5.3.6
[INFO] [stderr]     Checking time v0.3.53
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]    Compiling toml_datetime v0.6.3
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_edit v0.20.2
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling toml v0.8.2
[INFO] [stderr]    Compiling proc-macro-crate v2.0.2
[INFO] [stderr]    Compiling system-deps v6.2.2
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling glib-macros v0.18.5
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling gtk3-macros v0.18.2
[INFO] [stderr]    Compiling glib-sys v0.18.1
[INFO] [stderr]    Compiling gobject-sys v0.18.0
[INFO] [stderr]    Compiling gio-sys v0.18.1
[INFO] [stderr]    Compiling gdk-sys v0.18.2
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.18.0
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling cairo-sys-rs v0.18.2
[INFO] [stderr]    Compiling pango-sys v0.18.0
[INFO] [stderr]    Compiling atk-sys v0.18.2
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]    Compiling gtk-sys v0.18.2
[INFO] [stderr]    Compiling soup3-sys v0.5.0
[INFO] [stderr]    Compiling javascriptcore-rs-sys v1.1.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]    Compiling gdkx11-sys v0.18.2
[INFO] [stderr]    Compiling webkit2gtk-sys v2.0.1
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling dlopen2_derive v0.4.3
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking axum-core v0.5.6
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking dlopen2 v0.7.0
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking gdkwayland-sys v0.18.2
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking rusqlite v0.32.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking glib v0.18.5
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking h2 v0.4.15
[INFO] [stderr]     Checking tower-http v0.6.11
[INFO] [stderr]     Checking hyper v1.10.1
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking gio v0.18.4
[INFO] [stderr]     Checking cairo-rs v0.18.5
[INFO] [stderr]     Checking atk v0.18.2
[INFO] [stderr]     Checking javascriptcore-rs v1.1.2
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking axum v0.8.9
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking gdk-pixbuf v0.18.5
[INFO] [stderr]     Checking pango v0.18.3
[INFO] [stderr]     Checking soup3 v0.5.0
[INFO] [stderr]     Checking gdk v0.18.2
[INFO] [stderr]     Checking gdkx11 v0.18.2
[INFO] [stderr]     Checking webkit2gtk v2.0.1
[INFO] [stderr]     Checking tao v0.31.1
[INFO] [stderr]     Checking agent_core v0.10.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `CONSOLIDATE_MIN_OBS_CHARS_DEFAULT`
[INFO] [stdout]   --> src/consolidate_eval.rs:25:49
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::agent::{AgentCore, PatternReplyKind, CONSOLIDATE_MIN_OBS_CHARS_DEFAULT, PATTERN_BUDGET};
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicPtr` and `Ordering`
[INFO] [stdout]   --> src/sandbox.rs:18:25
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::atomic::{AtomicPtr, Ordering};
[INFO] [stdout]    |                         ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicPtr` and `Ordering`
[INFO] [stdout]   --> src/sandbox.rs:18:25
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::atomic::{AtomicPtr, Ordering};
[INFO] [stdout]    |                         ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/multiagent.rs:127:34
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let _ = self.total_bytes.fetch_update(
[INFO] [stdout]     |                                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 127 -         let _ = self.total_bytes.fetch_update(
[INFO] [stdout] 127 +         let _ = self.total_bytes.try_update(
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/multiagent.rs:207:38
[INFO] [stdout]     |
[INFO] [stdout] 207 |             let _ = self.total_bytes.fetch_update(
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 207 -             let _ = self.total_bytes.fetch_update(
[INFO] [stdout] 207 +             let _ = self.total_bytes.try_update(
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::fs::OpenOptionsExt`
[INFO] [stdout]    --> src/multiagent.rs:263:17
[INFO] [stdout]     |
[INFO] [stdout] 263 |             use std::os::unix::fs::OpenOptionsExt;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/agent.rs:6818:13
[INFO] [stdout]      |
[INFO] [stdout] 6818 |         let mut push = |line: &str, facts: &mut Vec<String>| {
[INFO] [stdout]      |             ----^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/multiagent.rs:127:34
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let _ = self.total_bytes.fetch_update(
[INFO] [stdout]     |                                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 127 -         let _ = self.total_bytes.fetch_update(
[INFO] [stdout] 127 +         let _ = self.total_bytes.try_update(
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/multiagent.rs:207:38
[INFO] [stdout]     |
[INFO] [stdout] 207 |             let _ = self.total_bytes.fetch_update(
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 207 -             let _ = self.total_bytes.fetch_update(
[INFO] [stdout] 207 +             let _ = self.total_bytes.try_update(
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::fs::OpenOptionsExt`
[INFO] [stdout]    --> src/multiagent.rs:263:17
[INFO] [stdout]     |
[INFO] [stdout] 263 |             use std::os::unix::fs::OpenOptionsExt;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tool_name`, `messages_before`, `session_id`, `trace_id`, and `captured_at_ms` are never read
[INFO] [stdout]    --> src/agent.rs:280:16
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub(crate) struct MutationSnapshot {
[INFO] [stdout]     |                   ---------------- fields in this struct
[INFO] [stdout] 279 |     /// 触发快照的写工具名
[INFO] [stdout] 280 |     pub(crate) tool_name: String,
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] 281 |     /// 捕获时该 run 的消息列表（含系统 prompt 与已执行工具结果）
[INFO] [stdout] 282 |     pub(crate) messages_before: Vec<crate::llm::Message>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 283 |     pub(crate) session_id: String,
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 284 |     pub(crate) trace_id: String,
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 285 |     pub(crate) captured_at_ms: u64,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MutationSnapshot` 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: fields `sub_agents`, `sub_agent_seq`, and `sub_agents_file` are never read
[INFO] [stdout]    --> src/agent.rs:445:16
[INFO] [stdout]     |
[INFO] [stdout] 368 | pub struct AgentCore {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub(crate) sub_agents: std::sync::Arc<tokio::sync::Mutex<crate::persistent_subagent::SubAgentRegistry>>,
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 446 |     /// 子 agent id 序列号（单调递增，spawn 时分配）
[INFO] [stdout] 447 |     pub(crate) sub_agent_seq: std::sync::atomic::AtomicU64,
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub(crate) sub_agents_file: String,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `take_mutation_snapshot`, `sub_agent_spawn`, `sub_agent_send`, `sub_agent_list`, and `sub_agent_take_inbox` are never used
[INFO] [stdout]      --> src/agent.rs:9393:25
[INFO] [stdout]       |
[INFO] [stdout]  1557 | impl AgentCore {
[INFO] [stdout]       | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9393 |     pub(crate) async fn take_mutation_snapshot(
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10372 |     pub(crate) async fn sub_agent_spawn(
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10407 |     pub(crate) async fn sub_agent_send(
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10440 |     pub(crate) async fn sub_agent_list(&self) -> Vec<serde_json::Value> {
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10464 |     pub(crate) async fn sub_agent_take_inbox(
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/agent.rs:6818:13
[INFO] [stdout]      |
[INFO] [stdout] 6818 |         let mut push = |line: &str, facts: &mut Vec<String>| {
[INFO] [stdout]      |             ----^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]      --> src/agent.rs:16310:23
[INFO] [stdout]       |
[INFO] [stdout] 16310 |         let (text, k, kind) = AgentCore::truncate_json_records(raw, 20);
[INFO] [stdout]       |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_kind`
[INFO] [stdout]       |
[INFO] [stdout]       = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]      --> src/agent.rs:16323:23
[INFO] [stdout]       |
[INFO] [stdout] 16323 |         let (text, k, kind) = AgentCore::truncate_json_records(raw, 40);
[INFO] [stdout]       |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind4`
[INFO] [stdout]      --> src/agent.rs:16346:25
[INFO] [stdout]       |
[INFO] [stdout] 16346 |         let (text4, k4, kind4) = AgentCore::truncate_json_records("[1,2,3]", 100);
[INFO] [stdout]       |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_kind4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/boundary.rs:2583:13
[INFO] [stdout]      |
[INFO] [stdout] 2583 |         let mut boundary = ComplianceBoundary::new(None);
[INFO] [stdout]      |             ----^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/boundary.rs:2618:13
[INFO] [stdout]      |
[INFO] [stdout] 2618 |         let mut boundary = ComplianceBoundary::new(Some(vec!["query_sql".to_string()]));
[INFO] [stdout]      |             ----^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/boundary.rs:2709:13
[INFO] [stdout]      |
[INFO] [stdout] 2709 |         let mut boundary = ComplianceBoundary::new(None);
[INFO] [stdout]      |             ----^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/boundary.rs:2817:13
[INFO] [stdout]      |
[INFO] [stdout] 2817 |         let mut classifier = b.classifier.lock().unwrap();
[INFO] [stdout]      |             ----^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/boundary.rs:2832:13
[INFO] [stdout]      |
[INFO] [stdout] 2832 |         let mut boundary = ComplianceBoundary::new(None);
[INFO] [stdout]      |             ----^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/boundary.rs:2874:13
[INFO] [stdout]      |
[INFO] [stdout] 2874 |         let mut boundary = ComplianceBoundary::new(None);
[INFO] [stdout]      |             ----^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::http::StatusCode`
[INFO] [stdout]   --> src/handlers/approval.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use axum::http::StatusCode;
[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: `axum::http::StatusCode`
[INFO] [stdout]   --> src/handlers/approval.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use axum::http::StatusCode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http`
[INFO] [stdout]    --> src/mcp_client.rs:706:32
[INFO] [stdout]     |
[INFO] [stdout] 706 |         if let McpClient::Http(ref http) = client {
[INFO] [stdout]     |                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{async block@src/handlers/chat.rs:114:22: 114:32}: Send`
[INFO] [stdout]    --> src/handlers/chat.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 | /         tokio::spawn(async move {
[INFO] [stdout] 115 | |             // 解串行：克隆 Arc 后释放锁，chat() 并发执行
[INFO] [stdout] 116 | |             let agent = {
[INFO] [stdout] 117 | |                 let g = st_clone.agent.lock().await;
[INFO] [stdout] ...   |
[INFO] [stdout] 136 | |             let _ = tx.send(Ok(SseEvent::default().data("").event("done")));
[INFO] [stdout] 137 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: which requires `{coroutine witness@src/handlers/chat.rs:114:22: 114:32}: Send`
[INFO] [stdout]     = note: which requires `impl Future<Output = std::string::String>: Send`
[INFO] [stdout]     = note: which requires `{async fn body of AgentCore::chat()}: Send`
[INFO] [stdout]     = note: which requires `{coroutine witness@AgentCore::chat::{closure#0}}: Send`
[INFO] [stdout]     = note: which requires `{async block@AgentCore::chat::{closure#0}::{closure#0}}: Send`
[INFO] [stdout]     = note: which requires `{coroutine witness@AgentCore::chat::{closure#0}::{closure#0}}: Send`
[INFO] [stdout]     = note: which requires `impl Future<Output = std::string::String>: Send`
[INFO] [stdout]     = note: which requires `{async fn body of AgentCore::chat_inner()}: Send`
[INFO] [stdout]     = note: which requires `{coroutine witness@AgentCore::chat_inner::{closure#0}}: Send`
[INFO] [stdout]     = note: which requires `impl Future<Output = std::string::String>: Send`
[INFO] [stdout]     = note: which requires `{async fn body of AgentCore::execute_chat()}: Send`
[INFO] [stdout]     = note: which requires `{coroutine witness@AgentCore::execute_chat::{closure#0}}: Send`
[INFO] [stdout]     = note: which requires `impl Future<Output = std::string::String>: Send`
[INFO] [stdout]     = note: which requires `{async fn body of AgentCore::llm_loop()}: Send`
[INFO] [stdout]     = note: which requires `{coroutine witness@AgentCore::llm_loop::{closure#0}}: Send`
[INFO] [stdout]     = note: and so on...
[INFO] [stdout]     = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]     = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`agent_core`)
[INFO] [stdout]     = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]     = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{async block@src/handlers/chat.rs:114:22: 114:32}: Send`
[INFO] [stdout]    --> src/handlers/chat.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 | /         tokio::spawn(async move {
[INFO] [stdout] 115 | |             // 解串行：克隆 Arc 后释放锁，chat() 并发执行
[INFO] [stdout] 116 | |             let agent = {
[INFO] [stdout] 117 | |                 let g = st_clone.agent.lock().await;
[INFO] [stdout] ...   |
[INFO] [stdout] 136 | |             let _ = tx.send(Ok(SseEvent::default().data("").event("done")));
[INFO] [stdout] 137 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: which requires `{coroutine witness@src/handlers/chat.rs:114:22: 114:32}: Send`
[INFO] [stdout]     = note: which requires `impl Future<Output = std::string::String>: Send`
[INFO] [stdout]     = note: which requires `{async fn body of AgentCore::chat()}: Send`
[INFO] [stdout]     = note: which requires `{coroutine witness@AgentCore::chat::{closure#0}}: Send`
[INFO] [stdout]     = note: which requires `{async block@AgentCore::chat::{closure#0}::{closure#0}}: Send`
[INFO] [stdout]     = note: which requires `{coroutine witness@AgentCore::chat::{closure#0}::{closure#0}}: Send`
[INFO] [stdout]     = note: which requires `impl Future<Output = std::string::String>: Send`
[INFO] [stdout]     = note: which requires `{async fn body of AgentCore::chat_inner()}: Send`
[INFO] [stdout]     = note: which requires `{coroutine witness@AgentCore::chat_inner::{closure#0}}: Send`
[INFO] [stdout]     = note: which requires `impl Future<Output = std::string::String>: Send`
[INFO] [stdout]     = note: which requires `{async fn body of AgentCore::execute_chat()}: Send`
[INFO] [stdout]     = note: which requires `{coroutine witness@AgentCore::execute_chat::{closure#0}}: Send`
[INFO] [stdout]     = note: which requires `impl Future<Output = std::string::String>: Send`
[INFO] [stdout]     = note: which requires `{async fn body of AgentCore::llm_loop()}: Send`
[INFO] [stdout]     = note: which requires `{coroutine witness@AgentCore::llm_loop::{closure#0}}: Send`
[INFO] [stdout]     = note: and so on...
[INFO] [stdout]     = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]     = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`agent_core`)
[INFO] [stdout]     = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]     = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tool_name`, `messages_before`, and `captured_at_ms` are never read
[INFO] [stdout]    --> src/agent.rs:280:16
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub(crate) struct MutationSnapshot {
[INFO] [stdout]     |                   ---------------- fields in this struct
[INFO] [stdout] 279 |     /// 触发快照的写工具名
[INFO] [stdout] 280 |     pub(crate) tool_name: String,
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] 281 |     /// 捕获时该 run 的消息列表（含系统 prompt 与已执行工具结果）
[INFO] [stdout] 282 |     pub(crate) messages_before: Vec<crate::llm::Message>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub(crate) captured_at_ms: u64,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MutationSnapshot` 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: fields `sub_agents`, `sub_agent_seq`, and `sub_agents_file` are never read
[INFO] [stdout]    --> src/agent.rs:445:16
[INFO] [stdout]     |
[INFO] [stdout] 368 | pub struct AgentCore {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub(crate) sub_agents: std::sync::Arc<tokio::sync::Mutex<crate::persistent_subagent::SubAgentRegistry>>,
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 446 |     /// 子 agent id 序列号（单调递增，spawn 时分配）
[INFO] [stdout] 447 |     pub(crate) sub_agent_seq: std::sync::atomic::AtomicU64,
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub(crate) sub_agents_file: String,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `take_mutation_snapshot`, `sub_agent_spawn`, `sub_agent_send`, `sub_agent_list`, and `sub_agent_take_inbox` are never used
[INFO] [stdout]      --> src/agent.rs:9393:25
[INFO] [stdout]       |
[INFO] [stdout]  1557 | impl AgentCore {
[INFO] [stdout]       | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9393 |     pub(crate) async fn take_mutation_snapshot(
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10372 |     pub(crate) async fn sub_agent_spawn(
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10407 |     pub(crate) async fn sub_agent_send(
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10440 |     pub(crate) async fn sub_agent_list(&self) -> Vec<serde_json::Value> {
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10464 |     pub(crate) async fn sub_agent_take_inbox(
[INFO] [stdout]       |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `open`
[INFO] [stderr]  --> Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | open = "5"
[INFO] [stderr]   | ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `open`
[INFO] [stderr] warning: `agent_core` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 17s
[INFO] running `Command { std: "docker" "inspect" "27efa1255e04108ab3112560d6ca938e0116d3360ee7a9aeb09dce42e0fb4577", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "27efa1255e04108ab3112560d6ca938e0116d3360ee7a9aeb09dce42e0fb4577", kill_on_drop: false }`
[INFO] [stdout] 27efa1255e04108ab3112560d6ca938e0116d3360ee7a9aeb09dce42e0fb4577
