[INFO] cloning repository https://github.com/luofenggu/alice-engine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/luofenggu/alice-engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fluofenggu%2Falice-engine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fluofenggu%2Falice-engine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f03245fe0e044c22ebb488159a430caec2ea78b9
[INFO] testing luofenggu/alice-engine against beta-2026-03-05 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fluofenggu%2Falice-engine" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/luofenggu/alice-engine
[INFO] finished tweaking git repo https://github.com/luofenggu/alice-engine
[INFO] tweaked toml for git repo https://github.com/luofenggu/alice-engine written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/luofenggu/alice-engine on toolchain beta-2026-03-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/luofenggu/alice-engine 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" "+beta-2026-03-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] eeb5b5baf5a87f8051b4a675a7b75d725e6fd769970606b5d9424352c58a2509
[INFO] running `Command { std: "docker" "start" "-a" "eeb5b5baf5a87f8051b4a675a7b75d725e6fd769970606b5d9424352c58a2509", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "eeb5b5baf5a87f8051b4a675a7b75d725e6fd769970606b5d9424352c58a2509", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eeb5b5baf5a87f8051b4a675a7b75d725e6fd769970606b5d9424352c58a2509", kill_on_drop: false }`
[INFO] [stdout] eeb5b5baf5a87f8051b4a675a7b75d725e6fd769970606b5d9424352c58a2509
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e80c1008bfbbb2f35330fb728d9de489ee42ed51fbc52145f84041aa8ec022d8
[INFO] running `Command { std: "docker" "start" "-a" "e80c1008bfbbb2f35330fb728d9de489ee42ed51fbc52145f84041aa8ec022d8", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling multer v3.1.0
[INFO] [stderr]    Compiling compression-core v0.4.31
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling compression-codecs v0.4.37
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling http-range-header v0.4.2
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling mad-hatter-macros v0.1.0 (/opt/rustwide/workdir/mad-hatter/mad-hatter-macros)
[INFO] [stderr]    Compiling route-macro v0.1.0 (/opt/rustwide/workdir/engine/route-macro)
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling tungstenite v0.28.0
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling tungstenite v0.24.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling async-compression v0.4.41
[INFO] [stderr]    Compiling tokio-tungstenite v0.28.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-tungstenite v0.24.0
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling mad-hatter v0.1.0 (/opt/rustwide/workdir/mad-hatter/mad-hatter)
[INFO] [stderr]    Compiling alice-engine v0.1.0 (/opt/rustwide/workdir/engine)
[INFO] [stderr]    Compiling alice-integration v0.1.0 (/opt/rustwide/workdir/integration)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 33s
[INFO] running `Command { std: "docker" "inspect" "e80c1008bfbbb2f35330fb728d9de489ee42ed51fbc52145f84041aa8ec022d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e80c1008bfbbb2f35330fb728d9de489ee42ed51fbc52145f84041aa8ec022d8", kill_on_drop: false }`
[INFO] [stdout] e80c1008bfbbb2f35330fb728d9de489ee42ed51fbc52145f84041aa8ec022d8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 22293bf0bde377446ab31d6ed06ccc9cd340121a2fb7c285d7adcf15da0976e3
[INFO] running `Command { std: "docker" "start" "-a" "22293bf0bde377446ab31d6ed06ccc9cd340121a2fb7c285d7adcf15da0976e3", kill_on_drop: false }`
[INFO] [stderr]    Compiling mad-hatter-macros v0.1.0 (/opt/rustwide/workdir/mad-hatter/mad-hatter-macros)
[INFO] [stderr]    Compiling route-macro v0.1.0 (/opt/rustwide/workdir/engine/route-macro)
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling mockall_derive v0.12.1
[INFO] [stderr]    Compiling fragile v2.0.1
[INFO] [stderr]    Compiling downcast v0.11.0
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling mad-hatter v0.1.0 (/opt/rustwide/workdir/mad-hatter/mad-hatter)
[INFO] [stderr]    Compiling alice-engine v0.1.0 (/opt/rustwide/workdir/engine)
[INFO] [stdout] warning: type `StatusInfo` is more private than the item `DemoApiService::get_status::{anon_assoc#0}`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / http_service! {
[INFO] [stdout] 46 | |     service DemoApi {
[INFO] [stdout] 47 | |         // P4: no path params
[INFO] [stdout] 48 | |         GET "status" => get_status() -> Json<StatusInfo>;
[INFO] [stdout] ...  |
[INFO] [stdout] 67 | | }
[INFO] [stdout]    | |_^ opaque type `DemoApiService::get_status::{anon_assoc#0}` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `StatusInfo` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct StatusInfo {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `StatusInfo` is more private than the item `DemoApiService::get_status::{anon_assoc#0}`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / http_service! {
[INFO] [stdout] 46 | |     service DemoApi {
[INFO] [stdout] 47 | |         // P4: no path params
[INFO] [stdout] 48 | |         GET "status" => get_status() -> Json<StatusInfo>;
[INFO] [stdout] ...  |
[INFO] [stdout] 67 | | }
[INFO] [stdout]    | |_^ opaque type `DemoApiService::get_status::{anon_assoc#0}` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `StatusInfo` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct StatusInfo {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_bounds)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `User` is more private than the item `DemoApiService::get_user::{anon_assoc#0}`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / http_service! {
[INFO] [stdout] 46 | |     service DemoApi {
[INFO] [stdout] 47 | |         // P4: no path params
[INFO] [stdout] 48 | |         GET "status" => get_status() -> Json<StatusInfo>;
[INFO] [stdout] ...  |
[INFO] [stdout] 67 | | }
[INFO] [stdout]    | |_^ opaque type `DemoApiService::get_user::{anon_assoc#0}` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `User` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct User {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `User` is more private than the item `DemoApiService::get_user::{anon_assoc#0}`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / http_service! {
[INFO] [stdout] 46 | |     service DemoApi {
[INFO] [stdout] 47 | |         // P4: no path params
[INFO] [stdout] 48 | |         GET "status" => get_status() -> Json<StatusInfo>;
[INFO] [stdout] ...  |
[INFO] [stdout] 67 | | }
[INFO] [stdout]    | |_^ opaque type `DemoApiService::get_user::{anon_assoc#0}` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `User` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct User {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `User` is more private than the item `DemoApiService::list_users::{anon_assoc#0}`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / http_service! {
[INFO] [stdout] 46 | |     service DemoApi {
[INFO] [stdout] 47 | |         // P4: no path params
[INFO] [stdout] 48 | |         GET "status" => get_status() -> Json<StatusInfo>;
[INFO] [stdout] ...  |
[INFO] [stdout] 67 | | }
[INFO] [stdout]    | |_^ opaque type `DemoApiService::list_users::{anon_assoc#0}` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `User` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct User {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `User` is more private than the item `DemoApiService::list_users::{anon_assoc#0}`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / http_service! {
[INFO] [stdout] 46 | |     service DemoApi {
[INFO] [stdout] 47 | |         // P4: no path params
[INFO] [stdout] 48 | |         GET "status" => get_status() -> Json<StatusInfo>;
[INFO] [stdout] ...  |
[INFO] [stdout] 67 | | }
[INFO] [stdout]    | |_^ opaque type `DemoApiService::list_users::{anon_assoc#0}` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `User` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct User {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `User` is more private than the item `DemoApiService::create_user::{anon_assoc#0}`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / http_service! {
[INFO] [stdout] 46 | |     service DemoApi {
[INFO] [stdout] 47 | |         // P4: no path params
[INFO] [stdout] 48 | |         GET "status" => get_status() -> Json<StatusInfo>;
[INFO] [stdout] ...  |
[INFO] [stdout] 67 | | }
[INFO] [stdout]    | |_^ opaque type `DemoApiService::create_user::{anon_assoc#0}` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `User` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct User {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `User` is more private than the item `DemoApiService::create_user::{anon_assoc#0}`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / http_service! {
[INFO] [stdout] 46 | |     service DemoApi {
[INFO] [stdout] 47 | |         // P4: no path params
[INFO] [stdout] 48 | |         GET "status" => get_status() -> Json<StatusInfo>;
[INFO] [stdout] ...  |
[INFO] [stdout] 67 | | }
[INFO] [stdout]    | |_^ opaque type `DemoApiService::create_user::{anon_assoc#0}` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `User` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> mad-hatter/mad-hatter/examples/demo.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct User {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling mockall v0.12.1
[INFO] [stdout] warning: unused import: `NamedTempFile`
[INFO] [stdout]    --> engine/src/persist/hooks.rs:389:20
[INFO] [stdout]     |
[INFO] [stdout] 389 |     use tempfile::{NamedTempFile, TempDir};
[INFO] [stdout]     |                    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/persist/memory.rs:433:20
[INFO] [stdout]     |
[INFO] [stdout] 433 |         let (_tmp, mut memory) = setup();
[INFO] [stdout]     |                    ----^^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/persist/memory.rs:444:20
[INFO] [stdout]     |
[INFO] [stdout] 444 |         let (_tmp, mut memory) = setup();
[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]    --> engine/src/persist/memory.rs:506:20
[INFO] [stdout]     |
[INFO] [stdout] 506 |         let (_tmp, mut memory) = setup();
[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]    --> engine/src/persist/memory.rs:534:20
[INFO] [stdout]     |
[INFO] [stdout] 534 |         let (_tmp, mut memory) = setup();
[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]    --> engine/src/persist/memory.rs:584:20
[INFO] [stdout]     |
[INFO] [stdout] 584 |         let (_tmp, mut memory) = setup();
[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]    --> engine/src/prompt/mod.rs:215:14
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let (mut alice, _tmp) = setup_alice();
[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]    --> engine/src/prompt/mod.rs:279:14
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let (mut alice, _tmp) = setup_alice();
[INFO] [stdout]     |              ----^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling alice-integration v0.1.0 (/opt/rustwide/workdir/integration)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 28.32s
[INFO] running `Command { std: "docker" "inspect" "22293bf0bde377446ab31d6ed06ccc9cd340121a2fb7c285d7adcf15da0976e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "22293bf0bde377446ab31d6ed06ccc9cd340121a2fb7c285d7adcf15da0976e3", kill_on_drop: false }`
[INFO] [stdout] 22293bf0bde377446ab31d6ed06ccc9cd340121a2fb7c285d7adcf15da0976e3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 71c22c805d5fd9bd3093a7a97db43aec890cfa37ef3e0371b2f175e3144c8efd
[INFO] running `Command { std: "docker" "start" "-a" "71c22c805d5fd9bd3093a7a97db43aec890cfa37ef3e0371b2f175e3144c8efd", kill_on_drop: false }`
[INFO] [stderr] warning: type `StatusInfo` is more private than the item `DemoApiService::get_status::{anon_assoc#0}`
[INFO] [stderr]   --> mad-hatter/mad-hatter/examples/demo.rs:45:1
[INFO] [stderr]    |
[INFO] [stderr] 45 | / http_service! {
[INFO] [stderr] 46 | |     service DemoApi {
[INFO] [stderr] 47 | |         // P4: no path params
[INFO] [stderr] 48 | |         GET "status" => get_status() -> Json<StatusInfo>;
[INFO] [stderr] ...  |
[INFO] [stderr] 67 | | }
[INFO] [stderr]    | |_^ opaque type `DemoApiService::get_status::{anon_assoc#0}` is reachable at visibility `pub`
[INFO] [stderr]    |
[INFO] [stderr] note: but type `StatusInfo` is only usable at visibility `pub(crate)`
[INFO] [stderr]   --> mad-hatter/mad-hatter/examples/demo.rs:27:1
[INFO] [stderr]    |
[INFO] [stderr] 27 | struct StatusInfo {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `StatusInfo` is more private than the item `DemoApiService::get_status::{anon_assoc#0}`
[INFO] [stderr]   --> mad-hatter/mad-hatter/examples/demo.rs:45:1
[INFO] [stderr]    |
[INFO] [stderr] 45 | / http_service! {
[INFO] [stderr] 46 | |     service DemoApi {
[INFO] [stderr] 47 | |         // P4: no path params
[INFO] [stderr] 48 | |         GET "status" => get_status() -> Json<StatusInfo>;
[INFO] [stderr] ...  |
[INFO] [stderr] 67 | | }
[INFO] [stderr]    | |_^ opaque type `DemoApiService::get_status::{anon_assoc#0}` is reachable at visibility `pub`
[INFO] [stderr]    |
[INFO] [stderr] note: but type `StatusInfo` is only usable at visibility `pub(crate)`
[INFO] [stderr]   --> mad-hatter/mad-hatter/examples/demo.rs:27:1
[INFO] [stderr]    |
[INFO] [stderr] 27 | struct StatusInfo {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    = note: `#[warn(private_bounds)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `User` is more private than the item `DemoApiService::get_user::{anon_assoc#0}`
[INFO] [stderr]   --> mad-hatter/mad-hatter/examples/demo.rs:45:1
[INFO] [stderr]    |
[INFO] [stderr] 45 | / http_service! {
[INFO] [stderr] 46 | |     service DemoApi {
[INFO] [stderr] 47 | |         // P4: no path params
[INFO] [stderr] 48 | |         GET "status" => get_status() -> Json<StatusInfo>;
[INFO] [stderr] ...  |
[INFO] [stderr] 67 | | }
[INFO] [stderr]    | |_^ opaque type `DemoApiService::get_user::{anon_assoc#0}` is reachable at visibility `pub`
[INFO] [stderr]    |
[INFO] [stderr] note: but type `User` is only usable at visibility `pub(crate)`
[INFO] [stderr]   --> mad-hatter/mad-hatter/examples/demo.rs:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | struct User {
[INFO] [stderr]    | ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `User` is more private than the item `DemoApiService::list_users::{anon_assoc#0}`
[INFO] [stderr]   --> mad-hatter/mad-hatter/examples/demo.rs:45:1
[INFO] [stderr]    |
[INFO] [stderr] 45 | / http_service! {
[INFO] [stderr] 46 | |     service DemoApi {
[INFO] [stderr] 47 | |         // P4: no path params
[INFO] [stderr] 48 | |         GET "status" => get_status() -> Json<StatusInfo>;
[INFO] [stderr] ...  |
[INFO] [stderr] 67 | | }
[INFO] [stderr]    | |_^ opaque type `DemoApiService::list_users::{anon_assoc#0}` is reachable at visibility `pub`
[INFO] [stderr]    |
[INFO] [stderr] note: but type `User` is only usable at visibility `pub(crate)`
[INFO] [stderr]   --> mad-hatter/mad-hatter/examples/demo.rs:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | struct User {
[INFO] [stderr]    | ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `User` is more private than the item `DemoApiService::create_user::{anon_assoc#0}`
[INFO] [stderr]   --> mad-hatter/mad-hatter/examples/demo.rs:45:1
[INFO] [stderr]    |
[INFO] [stderr] 45 | / http_service! {
[INFO] [stderr] 46 | |     service DemoApi {
[INFO] [stderr] 47 | |         // P4: no path params
[INFO] [stderr] 48 | |         GET "status" => get_status() -> Json<StatusInfo>;
[INFO] [stderr] ...  |
[INFO] [stderr] 67 | | }
[INFO] [stderr]    | |_^ opaque type `DemoApiService::create_user::{anon_assoc#0}` is reachable at visibility `pub`
[INFO] [stderr]    |
[INFO] [stderr] note: but type `User` is only usable at visibility `pub(crate)`
[INFO] [stderr]   --> mad-hatter/mad-hatter/examples/demo.rs:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | struct User {
[INFO] [stderr]    | ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `mad-hatter` (example "demo") generated 8 warnings (3 duplicates)
[INFO] [stderr] warning: unused import: `NamedTempFile`
[INFO] [stderr]    --> engine/src/persist/hooks.rs:389:20
[INFO] [stderr]     |
[INFO] [stderr] 389 |     use tempfile::{NamedTempFile, TempDir};
[INFO] [stderr]     |                    ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/persist/memory.rs:433:20
[INFO] [stderr]     |
[INFO] [stderr] 433 |         let (_tmp, mut memory) = setup();
[INFO] [stderr]     |                    ----^^^^^^
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/persist/memory.rs:444:20
[INFO] [stderr]     |
[INFO] [stderr] 444 |         let (_tmp, mut memory) = setup();
[INFO] [stderr]     |                    ----^^^^^^
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/persist/memory.rs:506:20
[INFO] [stderr]     |
[INFO] [stderr] 506 |         let (_tmp, mut memory) = setup();
[INFO] [stderr]     |                    ----^^^^^^
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/persist/memory.rs:534:20
[INFO] [stderr]     |
[INFO] [stderr] 534 |         let (_tmp, mut memory) = setup();
[INFO] [stderr]     |                    ----^^^^^^
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/persist/memory.rs:584:20
[INFO] [stderr]     |
[INFO] [stderr] 584 |         let (_tmp, mut memory) = setup();
[INFO] [stderr]     |                    ----^^^^^^
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/prompt/mod.rs:215:14
[INFO] [stderr]     |
[INFO] [stderr] 215 |         let (mut alice, _tmp) = setup_alice();
[INFO] [stderr]     |              ----^^^^^
[INFO] [stderr]     |              |
[INFO] [stderr]     |              help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/prompt/mod.rs:279:14
[INFO] [stderr]     |
[INFO] [stderr] 279 |         let (mut alice, _tmp) = setup_alice();
[INFO] [stderr]     |              ----^^^^^
[INFO] [stderr]     |              |
[INFO] [stderr]     |              help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: `alice-engine` (lib test) generated 8 warnings (run `cargo fix --lib -p alice-engine --tests` to apply 8 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.47s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/alice_engine-595869981fa36fe9)
[INFO] [stdout] 
[INFO] [stdout] running 207 tests
[INFO] [stdout] test action::execute::tests::test_truncate_result ... ok
[INFO] [stdout] test core::tests::test_action_is_blocking ... ok
[INFO] [stdout] test action::execute::tests::test_execute_replace_in_file ... ok
[INFO] [stdout] test core::tests::test_build_doing_description ... ok
[INFO] [stdout] test core::tests::test_build_session_text ... ok
[INFO] [stdout] test action::execute::tests::test_send_msg_failure_sets_cancel_idle ... ok
[INFO] [stdout] test core::tests::test_alice_creation ... ok
[INFO] [stdout] test action::execute::tests::test_execute_read_msg_empty ... ok
[INFO] [stdout] test action::execute::tests::test_execute_send_msg_no_hooks_caller_fails ... ok
[INFO] [stdout] test core::tests::test_generate_action_id_format ... ok
[INFO] [stdout] test action::execute::tests::test_execute_thinking ... ok
[INFO] [stdout] test core::tests::test_sequence_guard_bab_pattern ... ok
[INFO] [stdout] test core::tests::test_sequence_guard_blocking_then_blocking_allowed ... ok
[INFO] [stdout] test core::tests::test_sequence_guard_blocking_then_idle_ignored ... ok
[INFO] [stdout] test core::tests::test_sequence_guard_blocking_then_nonblocking_rejected ... ok
[INFO] [stdout] test core::tests::test_sequence_guard_idle_then_idle_ignored ... ok
[INFO] [stdout] test core::tests::test_sequence_guard_idle_then_reject ... ok
[INFO] [stdout] test action::execute::tests::test_execute_idle ... ok
[INFO] [stdout] test core::tests::test_sequence_guard_nonblocking_chain ... ok
[INFO] [stdout] test core::tests::test_sequence_guard_normal_allows_all ... ok
[INFO] [stdout] test core::tests::test_sequence_guard_normal_to_idle ... ok
[INFO] [stdout] test action::execute::tests::test_execute_summary ... ok
[INFO] [stdout] test core::tests::test_count_unread_messages ... ok
[INFO] [stdout] test action::execute::tests::test_execute_script_exit_code ... ok
[INFO] [stdout] test action::execute::tests::test_send_msg_to_user_does_not_set_cancel_idle ... ok
[INFO] [stdout] test action::execute::tests::test_execute_script ... ok
[INFO] [stdout] test core::tests::test_transaction_creation ... ok
[INFO] [stdout] test core::tests::test_transaction_action_recording ... ok
[INFO] [stdout] test action::execute::tests::test_execute_write_and_read_file ... ok
[INFO] [stdout] test action::execute::tests::test_summary_creates_new_block_when_full ... ok
[INFO] [stdout] test core::tests::test_current_read_write_append ... ok
[INFO] [stdout] test action::execute::tests::test_execute_send_msg_to_user ... ok
[INFO] [stdout] test core::tests::test_delete_session_block ... ok
[INFO] [stdout] test action::execute::tests::test_execute_summary_empty_current ... ok
[INFO] [stdout] test external::llm::stream::tests::test_stream_item_done ... ok
[INFO] [stdout] test external::llm::stream::tests::test_stream_item_error ... ok
[INFO] [stdout] test external::llm::tests::test_chat_message_constructors ... ok
[INFO] [stdout] test external::llm::stream::tests::test_mock_stream_disconnected ... ok
[INFO] [stdout] test external::llm::tests::test_llm_config ... ok
[INFO] [stdout] test external::llm::stream::tests::test_stream_item_action ... ok
[INFO] [stdout] test external::llm::stream::tests::test_mock_stream ... ok
[INFO] [stdout] test external::llm::tests::test_sse_response_empty_delta ... ok
[INFO] [stdout] test external::llm::tests::test_sse_response_finish ... ok
[INFO] [stdout] test external::llm::tests::test_sse_response_parse ... ok
[INFO] [stdout] test engine::tests::test_instance_settings_load ... ok
[INFO] [stdout] test engine::tests::test_instance_settings_max_beats ... ok
[INFO] [stdout] test action::execute::tests::test_execute_read_msg_with_messages ... ok
[INFO] [stdout] test external::shell::tests::test_multiline_script ... ok
[INFO] [stdout] test external::shell::tests::test_exit_code ... ok
[INFO] [stdout] test external::skeleton::tests::test_extract_from_path_md ... ok
[INFO] [stdout] test external::shell::tests::test_working_dir ... ok
[INFO] [stdout] test external::skeleton::tests::test_extract_rust ... ok
[INFO] [stdout] test external::shell::tests::test_stderr_captured ... ok
[INFO] [stdout] test core::tests::test_session_block_size ... ok
[INFO] [stdout] test inference::beat::tests::test_extract_msg_ids_ignores_untrusted ... ok
[INFO] [stdout] test inference::beat::tests::test_extract_msg_ids_mixed ... ok
[INFO] [stdout] test inference::beat::tests::test_extract_msg_ids_read ... ok
[INFO] [stdout] test external::skeleton::tests::test_extract_from_path_rust ... ok
[INFO] [stdout] test core::tests::test_list_session_blocks ... ok
[INFO] [stdout] test external::skeleton::tests::test_load ... ok
[INFO] [stdout] test external::shell::tests::test_echo ... ok
[INFO] [stdout] test inference::beat::tests::test_extract_msg_ids_system_message ... ok
[INFO] [stdout] test inference::beat::tests::test_format_session_entries_empty ... ok
[INFO] [stdout] test inference::beat::tests::test_format_session_entries_truncates ... ok
[INFO] [stdout] test inference::beat::tests::test_make_memory_status_basic ... ok
[INFO] [stdout] test inference::beat::tests::test_extract_msg_ids_send ... ok
[INFO] [stdout] test inference::beat::tests::test_make_memory_status_over_limit ... ok
[INFO] [stdout] test external::skeleton::tests::test_unknown_ext ... ok
[INFO] [stdout] test core::tests::test_session_block_append_and_read ... ok
[INFO] [stdout] test inference::beat::tests::test_parse_summary_dual_output_strip_summary_marker ... ok
[INFO] [stdout] test inference::beat::tests::test_format_session_entries_basic ... ok
[INFO] [stdout] test inference::beat::tests::test_parse_summary_dual_output_with_knowledge ... ok
[INFO] [stdout] test inference::beat::tests::test_make_host_line ... ok
[INFO] [stdout] test inference::compress::tests::test_compress_request_with_existing_history ... ok
[INFO] [stdout] test inference::tests::test_idle_display_with_timeout ... ok
[INFO] [stdout] test inference::tests::test_parse_idle ... ok
[INFO] [stdout] test inference::beat::tests::test_parse_summary_dual_output_no_knowledge ... ok
[INFO] [stdout] test inference::tests::test_parse_idle_with_timeout ... ok
[INFO] [stdout] test inference::capture::tests::system_prompt_contains_key_concepts ... ok
[INFO] [stdout] test inference::compress::tests::test_compress_request_render ... ok
[INFO] [stdout] test inference::tests::test_parse_read_msg ... ok
[INFO] [stdout] test inference::tests::test_parse_replace_end_marker_own_line_variants ... ok
[INFO] [stdout] test inference::tests::test_parse_multiple_actions ... ok
[INFO] [stdout] test external::skeleton::tests::test_extract_from_path_unknown ... ok
[INFO] [stdout] test inference::tests::test_parse_replace_multiple_blocks ... ok
[INFO] [stdout] test engine::tests::test_engine_creation ... ok
[INFO] [stdout] test inference::tests::test_parse_replace_rust_generics_not_false_match ... ok
[INFO] [stdout] test inference::tests::test_parse_script ... ok
[INFO] [stdout] test core::tests::test_session_files_in_sessions_dir ... ok
[INFO] [stdout] test inference::tests::test_parse_send_msg_trailing_separator ... ok
[INFO] [stdout] test inference::tests::test_parse_send_msg ... ok
[INFO] [stdout] test inference::tests::test_parse_replace_in_file ... ok
[INFO] [stdout] test inference::tests::test_parse_summary ... ok
[INFO] [stdout] test inference::tests::test_parse_thinking ... ok
[INFO] [stdout] test inference::tests::test_parse_write_file ... ok
[INFO] [stdout] test inference::tests::test_safe_render_adjacent_placeholders ... ok
[INFO] [stdout] test inference::tests::test_safe_render_basic ... ok
[INFO] [stdout] test inference::tests::test_safe_render_chinese ... ok
[INFO] [stdout] test inference::tests::test_safe_render_empty_value ... ok
[INFO] [stdout] test external::shell::truncation_tests::test_truncation ... ok
[INFO] [stdout] test inference::tests::test_safe_render_no_injection ... ok
[INFO] [stdout] test inference::tests::test_safe_render_no_vars ... ok
[INFO] [stdout] test inference::tests::test_safe_render_single_brace ... ok
[INFO] [stdout] test inference::tests::test_strip_markdown_code_block_bash ... ok
[INFO] [stdout] test inference::tests::test_safe_render_unknown_placeholder ... ok
[INFO] [stdout] test inference::tests::test_strip_markdown_code_block_generic ... ok
[INFO] [stdout] test inference::tests::test_strip_markdown_code_block_no_markers ... ok
[INFO] [stdout] test inference::tests::test_strip_markdown_code_block_only_opening ... ok
[INFO] [stdout] test inference::capture::tests::render_contains_all_sections ... ok
[INFO] [stdout] test inference::tests::test_action_display ... ok
[INFO] [stdout] test core::tests::test_history_read_write ... ok
[INFO] [stdout] test persist::chat::tests::test_get_last_message_time ... ok
[INFO] [stdout] test persist::chat::tests::test_agent_reply_outbox ... ok
[INFO] [stdout] test persist::hooks::tests::test_format_contacts_for_prompt ... ok
[INFO] [stdout] test persist::chat::tests::test_append_and_query ... ok
[INFO] [stdout] test persist::hooks::tests::test_hooks_config_default_is_empty ... ok
[INFO] [stdout] test persist::hooks::tests::test_hooks_config_not_empty ... ok
[INFO] [stdout] test persist::hooks::tests::test_hooks_caller_no_config_returns_empty ... ok
[INFO] [stdout] test persist::chat::tests::test_get_messages_after ... ok
[INFO] [stdout] test persist::hooks::tests::test_hooks_store_open_and_load ... ok
[INFO] [stdout] test persist::hooks::tests::test_hooks_store_register_idempotent ... ok
[INFO] [stdout] test persist::chat::tests::test_user_message_inbox ... ok
[INFO] [stdout] test persist::instance::tests::test_create_all_dirs_exist ... ok
[INFO] [stdout] test persist::instance::tests::test_create_instance ... ok
[INFO] [stdout] test persist::chat::tests::test_query_pagination ... ok
[INFO] [stdout] test persist::instance::tests::test_create_instance_with_knowledge ... ok
[INFO] [stdout] test persist::instance::tests::test_open_creates_missing_dirs ... ok
[INFO] [stdout] test persist::instance::tests::test_knowledge_migration ... ok
[INFO] [stdout] test persist::instance::tests::test_open_instance ... ok
[INFO] [stdout] test persist::instance::tests::test_store_create_and_list ... ok
[INFO] [stdout] test persist::instance::tests::test_store_delete ... ok
[INFO] [stdout] test persist::memory::tests::test_append_current ... ok
[INFO] [stdout] test persist::memory::tests::test_commit_history ... ok
[INFO] [stdout] test persist::instance::tests::test_store_open ... ok
[INFO] [stdout] test persist::memory::tests::test_commit_summary ... ok
[INFO] [stdout] test persist::memory::tests::test_last_rolled_marker ... ok
[INFO] [stdout] test persist::memory::tests::test_memory_dir_accessor ... ok
[INFO] [stdout] test persist::memory::tests::test_open_creates_directories ... ok
[INFO] [stdout] test persist::memory::tests::test_commit_summary_appends_to_existing_session ... ok
[INFO] [stdout] test persist::memory::tests::test_open_empty_files ... ok
[INFO] [stdout] test persist::memory::tests::test_open_existing_files ... ok
[INFO] [stdout] test persist::memory::tests::test_session_blocks_sorted ... ok
[INFO] [stdout] test persist::memory::tests::test_session_blocks ... ok
[INFO] [stdout] test persist::settings::tests::test_defaults ... ok
[INFO] [stdout] test persist::settings::tests::test_hot_reload_channel_merge_instance_priority ... ok
[INFO] [stdout] test persist::settings::tests::test_merge_fallback ... ok
[INFO] [stdout] test persist::memory::tests::test_write_current ... ok
[INFO] [stdout] test persist::settings::tests::test_three_layer_settings_inheritance ... ok
[INFO] [stdout] test persist::settings::tests::test_validate_with_key ... ok
[INFO] [stdout] test persist::settings::tests_empty_array_bug::test_merge_fallback_empty_extra_channels_inherits_from_fallback ... ok
[INFO] [stdout] test persist::tests::test_textfile_append ... ok
[INFO] [stdout] test persist::tests::test_textfile_basic ... ok
[INFO] [stdout] test persist::tests::test_textfile_clear ... ok
[INFO] [stdout] test persist::tests::test_textfile_no_tmp_after_write ... ok
[INFO] [stdout] test persist::tests::test_textfile_open_existing ... ok
[INFO] [stdout] test persist::tests::test_textfile_persistence ... ok
[INFO] [stdout] test inference::beat::tests::test_make_reserved_skill_no_host ... FAILED
[INFO] [stdout] test policy::messages::tests::test_humanize_401 ... ok
[INFO] [stdout] test policy::messages::tests::test_humanize_402 ... ok
[INFO] [stdout] test inference::tests::test_parse_mixed_valid_and_invalid_actions ... ok
[INFO] [stdout] test inference::tests::test_parse_replace_in_file_no_blocks_becomes_thinking ... ok
[INFO] [stdout] test inference::tests::test_parse_unknown_action_becomes_thinking ... ok
[INFO] [stdout] test inference::tests::test_parse_write_file_empty_becomes_thinking ... ok
[INFO] [stdout] test inference::tests::test_parse_send_msg_empty_becomes_thinking ... ok
[INFO] [stdout] test policy::messages::tests::test_humanize_403 ... ok
[INFO] [stdout] test policy::messages::tests::test_humanize_429 ... ok
[INFO] [stdout] test policy::messages::tests::test_humanize_500 ... ok
[INFO] [stdout] test policy::messages::tests::test_humanize_502 ... ok
[INFO] [stdout] test policy::messages::tests::test_humanize_connection_failure ... ok
[INFO] [stdout] test inference::tests::test_parse_idle_with_invalid_timeout ... ok
[INFO] [stdout] test persist::settings::tests::test_validate_empty_key ... ok
[INFO] [stdout] test policy::messages::tests::test_beat_error_passthrough ... ok
[INFO] [stdout] test persist::instance::tests::test_store_delete_nonexistent ... ok
[INFO] [stdout] test policy::messages::tests::test_humanize_tokio_runtime ... ok
[INFO] [stdout] test persist::instance::tests::test_store_delete_invalid_id ... ok
[INFO] [stdout] test policy::messages::tests::test_humanize_empty_string ... ok
[INFO] [stdout] test policy::messages::tests::test_humanize_503 ... ok
[INFO] [stdout] test persist::hooks::tests::test_relay_message_no_config ... ok
[INFO] [stdout] test policy::messages::tests::test_humanize_stream_read_error ... ok
[INFO] [stdout] test policy::messages::tests::test_humanize_fallback ... ok
[INFO] [stdout] test policy::messages::tests::test_humanize_unknown_status ... ok
[INFO] [stdout] test policy::messages::tests::test_humanize_sse_timeout ... ok
[INFO] [stdout] test policy::messages::tests::test_inference_disconnected_with_rotation ... ok
[INFO] [stdout] test policy::messages::tests::test_inference_disconnected_without_rotation ... ok
[INFO] [stdout] test policy::messages::tests::test_inference_error_unknown_error ... ok
[INFO] [stdout] test policy::messages::tests::test_inference_error_without_rotation ... ok
[INFO] [stdout] test util::tests::test_replace_once_multiple_matches ... ok
[INFO] [stdout] test policy::messages::tests::test_inference_error_with_rotation ... ok
[INFO] [stdout] test util::tests::test_counter_u64 ... ok
[INFO] [stdout] test util::tests::test_safe_truncate_chinese ... ok
[INFO] [stdout] test util::tests::test_safe_truncate_emoji ... ok
[INFO] [stdout] test util::tests::test_safe_truncate_ascii ... ok
[INFO] [stdout] test prompt::tests::test_build_beat_request_with_knowledge ... ok
[INFO] [stdout] test prompt::tests::test_build_beat_request_empty_memory ... ok
[INFO] [stdout] test prompt::tests::test_load_knowledge_raw ... ok
[INFO] [stdout] test prompt::tests::test_extract_session_block_data ... ok
[INFO] [stdout] test prompt::tests::test_build_beat_request_with_session_block ... ok
[INFO] [stdout] test engine::tests::test_engine_restore_skips_invalid ... ok
[INFO] [stdout] test engine::tests::test_engine_restore_instances ... ok
[INFO] [stdout] test util::tests::test_counter_u32 ... ok
[INFO] [stdout] test util::tests::test_replace_once_success ... ok
[INFO] [stdout] test util::tests::test_replace_once_zero_matches ... ok
[INFO] [stdout] test util::tests::test_safe_truncate_mixed ... ok
[INFO] [stdout] test prompt::tests::test_extract_session_block_data_no_chat ... ok
[INFO] [stdout] test prompt::tests::test_extract_session_block_data_empty ... ok
[INFO] [stdout] test engine::tests::test_test_prefix_default_max_beats ... ok
[INFO] [stdout] test external::shell::tests::test_timeout ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- inference::beat::tests::test_make_reserved_skill_no_host stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'inference::beat::tests::test_make_reserved_skill_no_host' (186) panicked at engine/src/inference/beat.rs:506:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: "### knowledge: app-development ###\n# App 开发指南\n\n当用户要求你开发app时，你拥有以下能力：\n- **静态文件托管**：将文件放在工作空间中，通过 http://localhost:8081/serve/test/{路径} 访问\n- **公开访问**：将文件放在 workspace/apps/ 目录下，任何人无需登录即可通过 http://localhost:8081/public/test/apps/{路径} 访问\n- **本地服务**：启动 Python/Node 等服务监听端口，通过下面两种方式之一让用户访问\n- **数据持久化**：系统已预装sqlite3，推荐每个app使用独立的SQLite数据库文件（如 app目录/data.db）\n\n## 网络访问方式\n\n启动本地服务后，用户如何访问取决于网络环境。**请先和用户确认**：\n\n### 情况一：用户可以直达你的机器\n\n如果满足以下任一条件：\n- 你运行在用户的本地电脑上（localhost）\n- 你在云服务器上，有公网IP，且用户已在安全组/防火墙放行了对应端口\n\n那么用户可以直接访问 `http://{IP或localhost}:{端口}/`。这种情况下代码没有路径限制，正常开发即可。\n\n### 情况二：用户无法直达，需要反向代理\n\n如果用户无法直接访问你的端口（比如没有公网IP、端口未放行、或通过网关中转），可以使用内置的反向代理：`http://localhost:8081/proxy/{端口}/{路径}`（端口范围1024-65535）。\n\n**⚠\u{fe0f} 反向代理下必须使用相对路径**\n\n浏览器地址栏的URL前缀是 `/proxy/{端口}/`。如果代码中使用绝对路径（以 `/` 开头），浏览器会直接访问 `/xxx` 而丢失前缀，导致404。\n\n**原则：所有路径都不带前导 `/`，使用相对路径。**\n\n常见错误和正确写法：\n\n| 场景 | ❌ 错误 | ✅ 正确 |\n|------|---------|---------|\n| HTML链接 | `<a href=\"/login\">` | `<a href=\"login\">` |\n| 表单提交 | `<form action=\"/api/submit\">` | `<form action=\"api/submit\">` |\n| JS fetch | `fetch('/api/data')` | `fetch('api/data')` |\n| JS跳转 | `location.href = '/dashboard'` | `location.href = 'dashboard'` |\n| CSS资源 | `url('/static/bg.png')` | `url('static/bg.png')` |\n| 重定向 | `redirect(\"/login\")` | `redirect(\"login\")` |\n| 静态文件引用 | `<script src=\"/js/app.js\">` | `<script src=\"js/app.js\">` |\n\n**后端重定向也要注意**：Python Flask 的 `redirect(\"/login\")` 会生成绝对路径的 Location header。用 `redirect(\"login\")` 或返回相对路径。\n\n**自查清单**：写完代码后，全局搜索 `href=\"/`、`src=\"/`、`action=\"/`、`fetch('/`、`url('/`、`redirect(\"/`，把所有绝对路径改成相对路径。\n\n### 不确定？\n\n如果你不清楚用户的网络环境，主动问一句：\"你能直接访问我这台机器的端口吗？比如在浏览器打开 http://{IP}:8080 试试。如果不行，我用反向代理给你。\"\n\n## 规范日志\n\n开发app时，养成写规范日志的习惯：\n\n**带速查标记前缀：**\n```\n[AUTH] User login: user_id=123\n[ORDER-a1b2] Payment callback: status=success\n[DB] Migration applied: v2_add_index\n```\n\n每个模块/功能用固定前缀标记，关键业务加上实体ID（如 `[ORDER-{id}]`）。\n\n**为什么这很重要：**\n- **运行时定位**：`grep '[ORDER-a1b2]' app.log` 一条命令追踪完整链路\n- **代码定位**：日志标记本身就是代码搜索关键词——从日志反查到代码只需一次grep\n- **持久中间层**：你的记忆会滚动，但日志不会过期，是你理解系统运行状态最可靠的依据\n\n回信中附上完整URL，用户点击即可打开。\n\n## 图片理解\n\n当你需要理解图片内容时，可以在脚本中调用本机的多模态API：\n\n```bash\ncurl -s -X POST http://localhost:8081/api/instances/test/vision \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"描述这张图片的内容\",\"image_url\":\"图片的URL\"}'\n```\n\n返回格式：`{\"text\":\"图片描述内容\"}`\n\n- 此API使用你自己的LLM channel，需要模型支持vision（如Claude、GPT-4o等）\n- image_url 支持公网URL或base64格式（`data:image/png;base64,...`）\n- 适用场景：用户让你看图片、理解截图、分析上传的图像等\n\n## 用户上传文件\n\n用户可能会上传文件到云端。上传的文件在你的工作目录中可通过 `uploads/` 访问：\n\n- 文件按日期分目录：`uploads/YYYYMMDD/filename`\n- 文本文件直接用 `cat uploads/YYYYMMDD/filename` 读取\n- 图片文件用上面的多模态API理解内容（先用 `ls uploads/` 查看有哪些文件）\n"
[INFO] [stdout]  right: ""
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5956a8af403a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5956a8af403a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5956a8af403a - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5956a8af403a - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5956a8b0c6ca - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5956a8b0c6ca - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x5956a8af9592 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5956a8af9592 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5956a8acee5f - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5956a8acee5f - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5956a8aea939 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5956a8383f9c - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x5956a8383f9c - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5956a8aeabb2 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x5956a8aeabb2 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5956a8acef18 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5956a8ac5f89 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5956a8ad002d - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5956a8b0cfdc - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5956a8b0ce63 - core[10b6fa85044e1869]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x5956a81fe840 - core::panicking::assert_failed::h912fd5cbb192553b
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x5956a815dfec - alice_engine::inference::beat::tests::test_make_reserved_skill_no_host::hf246201c933226b9
[INFO] [stdout]                                at /opt/rustwide/workdir/engine/src/inference/beat.rs:506:9
[INFO] [stdout]   22:     0x5956a815e0e7 - alice_engine::inference::beat::tests::test_make_reserved_skill_no_host::{{closure}}::h1a83c74298e22db2
[INFO] [stdout]                                at /opt/rustwide/workdir/engine/src/inference/beat.rs:505:42
[INFO] [stdout]   23:     0x5956a81ab416 - core::ops::function::FnOnce::call_once::h5f6ac388cfb71841
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5956a837807b - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5956a837807b - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x5956a8384a6b - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x5956a8384a6b - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x5956a8384a6b - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5956a8384a6b - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5956a8384a6b - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5956a8384a6b - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x5956a8384a6b - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x5956a8380184 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x5956a8380184 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5956a8387672 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x5956a8387672 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x5956a8387672 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5956a8387672 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5956a8387672 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5956a8387672 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x5956a8387672 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5956a8af30ef - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   43:     0x5956a8af30ef - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7cbcb9a37aa4 - <unknown>
[INFO] [stdout]   45:     0x7cbcb9ac4a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     inference::beat::tests::test_make_reserved_skill_no_host
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 206 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.59s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p alice-engine --lib`
[INFO] running `Command { std: "docker" "inspect" "71c22c805d5fd9bd3093a7a97db43aec890cfa37ef3e0371b2f175e3144c8efd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "71c22c805d5fd9bd3093a7a97db43aec890cfa37ef3e0371b2f175e3144c8efd", kill_on_drop: false }`
[INFO] [stdout] 71c22c805d5fd9bd3093a7a97db43aec890cfa37ef3e0371b2f175e3144c8efd
