[INFO] fetching crate gamebox 0.1.2...
[INFO] testing gamebox-0.1.2 against beta-2026-03-05 for beta-1.95-1
[INFO] extracting crate gamebox 0.1.2 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate gamebox 0.1.2
[INFO] finished tweaking crates.io crate gamebox 0.1.2
[INFO] tweaked toml for crates.io crate gamebox 0.1.2 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate gamebox 0.1.2 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 crates.io crate gamebox 0.1.2 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] 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] 41193bfa88fab8dbe347d46be6a0e2ba7ddd0a9d1d95467e610fd74bb5370716
[INFO] running `Command { std: "docker" "start" "-a" "41193bfa88fab8dbe347d46be6a0e2ba7ddd0a9d1d95467e610fd74bb5370716", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "41193bfa88fab8dbe347d46be6a0e2ba7ddd0a9d1d95467e610fd74bb5370716", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "41193bfa88fab8dbe347d46be6a0e2ba7ddd0a9d1d95467e610fd74bb5370716", kill_on_drop: false }`
[INFO] [stdout] 41193bfa88fab8dbe347d46be6a0e2ba7ddd0a9d1d95467e610fd74bb5370716
[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] 6a8450ccbbf306e9bb2027459c596c3526b1403704993b328c33a69be02e9ef1
[INFO] running `Command { std: "docker" "start" "-a" "6a8450ccbbf306e9bb2027459c596c3526b1403704993b328c33a69be02e9ef1", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling unicode-ident v1.0.20
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling find-msvc-tools v0.1.4
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling hashbrown v0.16.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling openssl v0.10.74
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]    Compiling mac v0.1.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling cc v1.2.43
[INFO] [stderr]    Compiling windows_x86_64_gnu v0.52.6
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling futf v0.1.5
[INFO] [stderr]    Compiling dtoa v1.0.10
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling phf_codegen v0.11.3
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling tendril v0.4.3
[INFO] [stderr]    Compiling servo_arc v0.4.1
[INFO] [stderr]    Compiling windows-targets v0.52.6
[INFO] [stderr]    Compiling selectors v0.26.0
[INFO] [stderr]    Compiling dtoa-short v0.3.5
[INFO] [stderr]    Compiling weezl v0.1.12
[INFO] [stderr]    Compiling indexmap v2.12.0
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling windows-result v0.1.2
[INFO] [stderr]    Compiling jpeg-decoder v0.3.2
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling http v1.3.1
[INFO] [stderr]    Compiling syn v2.0.108
[INFO] [stderr]    Compiling string_cache_codegen v0.5.4
[INFO] [stderr]    Compiling ordered-float v2.10.1
[INFO] [stderr]    Compiling flate2 v1.1.5
[INFO] [stderr]    Compiling zune-inflate v0.2.54
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling bytemuck v1.24.0
[INFO] [stderr]    Compiling ego-tree v0.10.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling mio v1.1.0
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling markup5ever v0.14.1
[INFO] [stderr]    Compiling bit_field v0.10.3
[INFO] [stderr]    Compiling lebe v0.5.3
[INFO] [stderr]    Compiling gif v0.13.3
[INFO] [stderr]    Compiling png v0.17.16
[INFO] [stderr]    Compiling tiff v0.9.1
[INFO] [stderr]    Compiling qoi v0.4.1
[INFO] [stderr]    Compiling windows-core v0.53.0
[INFO] [stderr]    Compiling openssl-sys v0.9.110
[INFO] [stderr]    Compiling lru v0.16.2
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling serde_ignored v0.1.14
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling windows v0.53.0
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling ignore v0.4.24
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling cssparser-macros v0.6.1
[INFO] [stderr]    Compiling zerocopy-derive v0.8.31
[INFO] [stderr]    Compiling match_token v0.1.0
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling cssparser v0.34.0
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling tracing-subscriber v0.3.20
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling serde_with_macros v3.15.1
[INFO] [stderr]    Compiling string_cache v0.8.9
[INFO] [stderr]    Compiling serde-value v0.7.0
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling serde_with v3.15.1
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling exr v1.74.0
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling html5ever v0.29.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling serde-aux v4.7.0
[INFO] [stderr]    Compiling icu_properties v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling scraper v0.23.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling tokio-util v0.7.16
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling image v0.24.9
[INFO] [stderr]    Compiling tower-http v0.6.6
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling hyper v1.7.0
[INFO] [stderr]    Compiling hyper-util v0.1.17
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.24
[INFO] [stderr]    Compiling dlsite-gamebox v0.3.0
[INFO] [stderr]    Compiling gamebox v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated function `scan::scanner::walk_path`: 请使用 GameScanner::new().scan(path) 代替
[INFO] [stdout]   --> src/scan/mod.rs:34:32
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub use scanner::{GameScanner, walk_path};
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `try_extract_exe_icon`
[INFO] [stdout]   --> src/scan/utils.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     try_extract_exe_icon: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_try_extract_exe_icon`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cache_ttl` is never read
[INFO] [stdout]    --> src/providers/mod.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub struct GameDatabaseMiddleware {
[INFO] [stdout]     |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 195 |     cache_ttl: std::time::Duration,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `expires_in` and `token_type` are never read
[INFO] [stdout]   --> src/providers/igdb_provider.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct TwitchTokenResponse {
[INFO] [stdout]    |        ------------------- fields in this struct
[INFO] [stdout] 11 |     access_token: String,
[INFO] [stdout] 12 |     expires_in: u64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 13 |     token_type: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TwitchTokenResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/providers/igdb_provider.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | struct IGDBGame {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] 39 |     id: Option<u64>,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IGDBGame` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 52.69s
[INFO] running `Command { std: "docker" "inspect" "6a8450ccbbf306e9bb2027459c596c3526b1403704993b328c33a69be02e9ef1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6a8450ccbbf306e9bb2027459c596c3526b1403704993b328c33a69be02e9ef1", kill_on_drop: false }`
[INFO] [stdout] 6a8450ccbbf306e9bb2027459c596c3526b1403704993b328c33a69be02e9ef1
[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] dbbf30aa85237719aa4d770d3018828c203a525eb68522c836927210d2a0510e
[INFO] running `Command { std: "docker" "start" "-a" "dbbf30aa85237719aa4d770d3018828c203a525eb68522c836927210d2a0510e", kill_on_drop: false }`
[INFO] [stdout] warning: use of deprecated function `scan::scanner::walk_path`: 请使用 GameScanner::new().scan(path) 代替
[INFO] [stdout]   --> src/scan/mod.rs:34:32
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub use scanner::{GameScanner, walk_path};
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `try_extract_exe_icon`
[INFO] [stdout]   --> src/scan/utils.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     try_extract_exe_icon: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_try_extract_exe_icon`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cache_ttl` is never read
[INFO] [stdout]    --> src/providers/mod.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub struct GameDatabaseMiddleware {
[INFO] [stdout]     |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 195 |     cache_ttl: std::time::Duration,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `expires_in` and `token_type` are never read
[INFO] [stdout]   --> src/providers/igdb_provider.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct TwitchTokenResponse {
[INFO] [stdout]    |        ------------------- fields in this struct
[INFO] [stdout] 11 |     access_token: String,
[INFO] [stdout] 12 |     expires_in: u64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 13 |     token_type: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TwitchTokenResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/providers/igdb_provider.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | struct IGDBGame {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] 39 |     id: Option<u64>,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IGDBGame` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gamebox v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated function `scan::scanner::walk_path`: 请使用 GameScanner::new().scan(path) 代替
[INFO] [stdout]   --> src/scan/mod.rs:34:32
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub use scanner::{GameScanner, walk_path};
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `try_extract_exe_icon`
[INFO] [stdout]   --> src/scan/utils.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     try_extract_exe_icon: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_try_extract_exe_icon`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cache_ttl` is never read
[INFO] [stdout]    --> src/providers/mod.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub struct GameDatabaseMiddleware {
[INFO] [stdout]     |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 195 |     cache_ttl: std::time::Duration,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `expires_in` and `token_type` are never read
[INFO] [stdout]   --> src/providers/igdb_provider.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct TwitchTokenResponse {
[INFO] [stdout]    |        ------------------- fields in this struct
[INFO] [stdout] 11 |     access_token: String,
[INFO] [stdout] 12 |     expires_in: u64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 13 |     token_type: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TwitchTokenResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/providers/igdb_provider.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | struct IGDBGame {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] 39 |     id: Option<u64>,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IGDBGame` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.81s
[INFO] running `Command { std: "docker" "inspect" "dbbf30aa85237719aa4d770d3018828c203a525eb68522c836927210d2a0510e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dbbf30aa85237719aa4d770d3018828c203a525eb68522c836927210d2a0510e", kill_on_drop: false }`
[INFO] [stdout] dbbf30aa85237719aa4d770d3018828c203a525eb68522c836927210d2a0510e
[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] 3d9b2a650358bf60f643a13c9f7f69c66f888afd97a670637c67047e4e00039c
[INFO] running `Command { std: "docker" "start" "-a" "3d9b2a650358bf60f643a13c9f7f69c66f888afd97a670637c67047e4e00039c", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated function `scan::scanner::walk_path`: 请使用 GameScanner::new().scan(path) 代替
[INFO] [stderr]   --> src/scan/mod.rs:34:32
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub use scanner::{GameScanner, walk_path};
[INFO] [stderr]    |                                ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `try_extract_exe_icon`
[INFO] [stderr]   --> src/scan/utils.rs:48:5
[INFO] [stderr]    |
[INFO] [stderr] 48 |     try_extract_exe_icon: bool,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_try_extract_exe_icon`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `cache_ttl` is never read
[INFO] [stderr]    --> src/providers/mod.rs:195:5
[INFO] [stderr]     |
[INFO] [stderr] 192 | pub struct GameDatabaseMiddleware {
[INFO] [stderr]     |            ---------------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 195 |     cache_ttl: std::time::Duration,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `expires_in` and `token_type` are never read
[INFO] [stderr]   --> src/providers/igdb_provider.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | struct TwitchTokenResponse {
[INFO] [stderr]    |        ------------------- fields in this struct
[INFO] [stderr] 11 |     access_token: String,
[INFO] [stderr] 12 |     expires_in: u64,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 13 |     token_type: String,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TwitchTokenResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `id` is never read
[INFO] [stderr]   --> src/providers/igdb_provider.rs:39:5
[INFO] [stderr]    |
[INFO] [stderr] 38 | struct IGDBGame {
[INFO] [stderr]    |        -------- field in this struct
[INFO] [stderr] 39 |     id: Option<u64>,
[INFO] [stderr]    |     ^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `IGDBGame` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `gamebox` (lib) generated 5 warnings (run `cargo fix --lib -p gamebox` to apply 1 suggestion)
[INFO] [stderr] warning: `gamebox` (lib test) generated 5 warnings (5 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.36s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/gamebox-6006e9c1a331ae4c)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test providers::thegamesdb_provider::tests::test_thegamesdb_provider_get_by_id ... ok
[INFO] [stdout] test providers::thegamesdb_provider::tests::test_thegamesdb_provider_search ... ok
[INFO] [stdout] test scan::game_grouping::tests::test_path_group_result_serialization ... ok
[INFO] [stdout] test providers::thegamesdb_provider::tests::test_thegamesdb_provider_supports_game_type ... ok
[INFO] [stdout] test scan::utils::tests::test_find_common_parent_dir ... ok
[INFO] [stdout] test providers::thegamesdb_provider::tests::test_thegamesdb_provider_priority ... ok
[INFO] [stdout] test scan::utils::tests::test_extract_version ... ok
[INFO] [stdout] test scan::utils::tests::test_extract_search_key ... ok
[INFO] [stdout] test providers::igdb_provider::tests::test_igdb_provider_no_credentials ... ok
[INFO] [stdout] test providers::igdb_provider::tests::test_igdb_provider_supports_game_type ... ok
[INFO] [stdout] test providers::igdb_provider::tests::test_igdb_provider_priority ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests gamebox
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test src/scan/utils.rs - scan::utils::find_common_parent_dir (line 411) ... FAILED
[INFO] [stdout] test src/scan/utils.rs - scan::utils::extract_search_key (line 355) ... FAILED
[INFO] [stdout] test src/scan/mod.rs - scan (line 13) - compile ... FAILED
[INFO] [stdout] test src/scan/scanner.rs - scan::scanner::GameScanner (line 24) - compile ... FAILED
[INFO] [stdout] test src/scan/scanner.rs - scan::scanner::GameScanner::search (line 143) - compile ... FAILED
[INFO] [stdout] test src/traits/json_output.rs - traits::json_output::JsonOutput::out_json (line 28) - compile ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/scan/utils.rs - scan::utils::find_common_parent_dir (line 411) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `scanners` in this scope
[INFO] [stdout]    --> src/scan/utils.rs:412:5
[INFO] [stdout]     |
[INFO] [stdout] 412 | use scanners::scan::find_common_parent_dir;
[INFO] [stdout]     |     ^^^^^^^^ use of unresolved module or unlinked crate `scanners`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `scanners`, use `cargo add scanners` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/scan/utils.rs - scan::utils::extract_search_key (line 355) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `scanners` in this scope
[INFO] [stdout]    --> src/scan/utils.rs:356:5
[INFO] [stdout]     |
[INFO] [stdout] 356 | use scanners::scan::extract_search_key;
[INFO] [stdout]     |     ^^^^^^^^ use of unresolved module or unlinked crate `scanners`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `scanners`, use `cargo add scanners` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/scan/mod.rs - scan (line 13) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `scanners` in this scope
[INFO] [stdout]   --> src/scan/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use scanners::scan::GameScanner;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `scanners`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `scanners`, use `cargo add scanners` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/scan/scanner.rs - scan::scanner::GameScanner (line 24) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `scanners` in this scope
[INFO] [stdout]   --> src/scan/scanner.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use scanners::scan::GameScanner;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `scanners`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `scanners`, use `cargo add scanners` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/scan/scanner.rs - scan::scanner::GameScanner::search (line 143) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `scanners` in this scope
[INFO] [stdout]    --> src/scan/scanner.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | use scanners::scan::GameScanner;
[INFO] [stdout]     |     ^^^^^^^^ use of unresolved module or unlinked crate `scanners`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `scanners`, use `cargo add scanners` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/traits/json_output.rs - traits::json_output::JsonOutput::out_json (line 28) stdout ----
[INFO] [stdout] error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied
[INFO] [stdout]   --> src/traits/json_output.rs:40:38
[INFO] [stdout]    |
[INFO] [stdout] 40 |     game_infos.out_json::<&str>(None)?;  // 输出到 ./scan_result.json
[INFO] [stdout]    |                ----------------------^ doesn't have a size known at compile-time
[INFO] [stdout]    |                |
[INFO] [stdout]    |                this can't be annotated with `?` because it has type `Result<_, Box<(dyn std::error::Error + Send + Sync + 'static)>>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync`
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = note: required for `Box<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
[INFO] [stdout]    = note: required for `Box<dyn std::error::Error>` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied
[INFO] [stdout]   --> src/traits/json_output.rs:45:47
[INFO] [stdout]    |
[INFO] [stdout] 43 |       let results = GameScanner::new()
[INFO] [stdout]    |  ___________________-
[INFO] [stdout] 44 | |         .with_dlsite_provider().await
[INFO] [stdout] 45 | |         .search("game name".to_string()).await?;
[INFO] [stdout]    | |                                              -^ doesn't have a size known at compile-time
[INFO] [stdout]    | |______________________________________________|
[INFO] [stdout]    |                                                this can't be annotated with `?` because it has type `Result<_, Box<dyn std::error::Error + Send + Sync>>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync`
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = note: required for `Box<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
[INFO] [stdout]    = note: required for `Box<dyn std::error::Error>` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error: `dyn std::error::Error + Send + Sync: Sized` is not satisfied
[INFO] [stdout]   --> src/traits/json_output.rs:47:46
[INFO] [stdout]    |
[INFO] [stdout] 47 |     results.out_json(Some("my_results.json"))?;  // 输出到 ./my_results.json
[INFO] [stdout]    |             ---------------------------------^ doesn't have a size known at compile-time
[INFO] [stdout]    |             |
[INFO] [stdout]    |             this can't be annotated with `?` because it has type `Result<_, Box<(dyn std::error::Error + Send + Sync + 'static)>>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `dyn std::error::Error + Send + Sync`
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = note: required for `Box<dyn std::error::Error + Send + Sync>` to implement `std::error::Error`
[INFO] [stdout]    = note: required for `Box<dyn std::error::Error>` to implement `From<Box<dyn std::error::Error + Send + Sync>>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/scan/mod.rs - scan (line 13)
[INFO] [stdout]     src/scan/scanner.rs - scan::scanner::GameScanner (line 24)
[INFO] [stdout]     src/scan/scanner.rs - scan::scanner::GameScanner::search (line 143)
[INFO] [stdout]     src/scan/utils.rs - scan::utils::extract_search_key (line 355)
[INFO] [stdout]     src/scan/utils.rs - scan::utils::find_common_parent_dir (line 411)
[INFO] [stdout]     src/traits/json_output.rs - traits::json_output::JsonOutput::out_json (line 28)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "3d9b2a650358bf60f643a13c9f7f69c66f888afd97a670637c67047e4e00039c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d9b2a650358bf60f643a13c9f7f69c66f888afd97a670637c67047e4e00039c", kill_on_drop: false }`
[INFO] [stdout] 3d9b2a650358bf60f643a13c9f7f69c66f888afd97a670637c67047e4e00039c
