[INFO] cloning repository https://github.com/alistairhendersoninfo/toolbox
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/alistairhendersoninfo/toolbox" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falistairhendersoninfo%2Ftoolbox", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falistairhendersoninfo%2Ftoolbox'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4aa4e82c3474619065d20ebd4fe108dcc98ff4ae
[INFO] building alistairhendersoninfo/toolbox against master#c7f6aa2869acdbf014d094c6e427e554e160b6db for pr-146237-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falistairhendersoninfo%2Ftoolbox" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  44% (822/1851)
Updating files:  45% (833/1851)
Updating files:  46% (852/1851)
Updating files:  47% (870/1851)
Updating files:  48% (889/1851)
Updating files:  49% (907/1851)
Updating files:  50% (926/1851)
Updating files:  51% (945/1851)
Updating files:  52% (963/1851)
Updating files:  53% (982/1851)
Updating files:  54% (1000/1851)
Updating files:  55% (1019/1851)
Updating files:  56% (1037/1851)
Updating files:  57% (1056/1851)
Updating files:  58% (1074/1851)
Updating files:  59% (1093/1851)
Updating files:  60% (1111/1851)
Updating files:  61% (1130/1851)
Updating files:  62% (1148/1851)
Updating files:  63% (1167/1851)
Updating files:  64% (1185/1851)
Updating files:  65% (1204/1851)
Updating files:  66% (1222/1851)
Updating files:  67% (1241/1851)
Updating files:  68% (1259/1851)
Updating files:  69% (1278/1851)
Updating files:  70% (1296/1851)
Updating files:  71% (1315/1851)
Updating files:  72% (1333/1851)
Updating files:  73% (1352/1851)
Updating files:  74% (1370/1851)
Updating files:  75% (1389/1851)
Updating files:  76% (1407/1851)
Updating files:  77% (1426/1851)
Updating files:  78% (1444/1851)
Updating files:  79% (1463/1851)
Updating files:  80% (1481/1851)
Updating files:  81% (1500/1851)
Updating files:  82% (1518/1851)
Updating files:  83% (1537/1851)
Updating files:  84% (1555/1851)
Updating files:  85% (1574/1851)
Updating files:  86% (1592/1851)
Updating files:  87% (1611/1851)
Updating files:  88% (1629/1851)
Updating files:  89% (1648/1851)
Updating files:  90% (1666/1851)
Updating files:  91% (1685/1851)
Updating files:  92% (1703/1851)
Updating files:  92% (1704/1851)
Updating files:  93% (1722/1851)
Updating files:  94% (1740/1851)
Updating files:  95% (1759/1851)
Updating files:  96% (1777/1851)
Updating files:  97% (1796/1851)
Updating files:  98% (1814/1851)
Updating files:  99% (1833/1851)
Updating files:  99% (1846/1851)
Updating files: 100% (1851/1851)
Updating files: 100% (1851/1851), done.
[INFO] started tweaking git repo https://github.com/alistairhendersoninfo/toolbox
[INFO] finished tweaking git repo https://github.com/alistairhendersoninfo/toolbox
[INFO] tweaked toml for git repo https://github.com/alistairhendersoninfo/toolbox written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/alistairhendersoninfo/toolbox on toolchain c7f6aa2869acdbf014d094c6e427e554e160b6db
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/alistairhendersoninfo/toolbox 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" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded strum v0.25.0
[INFO] [stderr]   Downloaded winapi-util v0.1.10
[INFO] [stderr]   Downloaded libredox v0.1.9
[INFO] [stderr]   Downloaded tui-input v0.8.0
[INFO] [stderr]   Downloaded tempfile v3.21.0
[INFO] [stderr]   Downloaded clap_derive v4.5.45
[INFO] [stderr]   Downloaded strum_macros v0.25.3
[INFO] [stderr]   Downloaded clap v4.5.45
[INFO] [stderr]   Downloaded cc v1.2.34
[INFO] [stderr]   Downloaded rusqlite v0.30.0
[INFO] [stderr]   Downloaded io-uring v0.7.10
[INFO] [stderr]   Downloaded clap_builder v4.5.44
[INFO] [stderr]   Downloaded fuzzy-matcher v0.3.7
[INFO] [stderr]   Downloaded bitflags v2.9.3
[INFO] [stderr]   Downloaded ratatui v0.24.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f2b5c9d849296d015bb59c33552e1c57583fb10ebc8c86b45c81ed2136561b93
[INFO] running `Command { std: "docker" "start" "-a" "f2b5c9d849296d015bb59c33552e1c57583fb10ebc8c86b45c81ed2136561b93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f2b5c9d849296d015bb59c33552e1c57583fb10ebc8c86b45c81ed2136561b93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f2b5c9d849296d015bb59c33552e1c57583fb10ebc8c86b45c81ed2136561b93", kill_on_drop: false }`
[INFO] [stdout] f2b5c9d849296d015bb59c33552e1c57583fb10ebc8c86b45c81ed2136561b93
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 828571a6d54ac6f5627a0062db5adce58fa216786aad6c0bf47fe185a45f7fd4
[INFO] running `Command { std: "docker" "start" "-a" "828571a6d54ac6f5627a0062db5adce58fa216786aad6c0bf47fe185a45f7fd4", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling cfg-if v1.0.3
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling cc v1.2.34
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling bitflags v2.9.3
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling anstyle-query v1.1.4
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]    Compiling anstyle v1.0.11
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling unicode-width v0.2.1
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling clap_lex v0.7.5
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling anstream v0.6.20
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling clap_builder v4.5.44
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling indoc v2.0.6
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling fuzzy-matcher v0.3.7
[INFO] [stderr]    Compiling hashlink v0.8.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling socket2 v0.6.0
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.27.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling tui-input v0.8.0
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling strum_macros v0.25.3
[INFO] [stderr]    Compiling clap_derive v4.5.45
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling strum v0.25.0
[INFO] [stderr]    Compiling ratatui v0.24.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling clap v4.5.45
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]    Compiling rusqlite v0.30.0
[INFO] [stderr]    Compiling toolbox-menu v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `ProgressBar` and `ProgressStyle`
[INFO] [stdout]  --> src/display.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use indicatif::{ProgressBar, ProgressStyle};
[INFO] [stdout]   |                 ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tail_child`
[INFO] [stdout]    --> src/display.rs:241:17
[INFO] [stdout]     |
[INFO] [stdout] 241 |             let tail_child = tail_cmd.stdout(Stdio::piped()).spawn()?;
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tail_child`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_script_by_path` is never used
[INFO] [stdout]    --> src/database.rs:280:18
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl Database {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub async fn get_script_by_path(&self, path: &str) -> Result<Option<Script>> {
[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 `toolbox_path` and `debug` are never read
[INFO] [stdout]   --> src/menu.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct MenuSystem {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 13 |     database: Database,
[INFO] [stdout] 14 |     toolbox_path: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     debug: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `detect_script_features` is never used
[INFO] [stdout]    --> src/scanner.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl ScriptScanner {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn detect_script_features(&self, content: &str) -> ScriptFeatures {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScriptFeatures` is never constructed
[INFO] [stdout]    --> src/scanner.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub struct ScriptFeatures {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `show_progress_bar` is never used
[INFO] [stdout]    --> src/ui.rs:435:12
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl MenuUI {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 435 |     pub fn show_progress_bar(&mut self, title: &str, progress: f64) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScriptParameter` is never constructed
[INFO] [stdout]   --> src/models.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct ScriptParameter {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParameterType` is never used
[INFO] [stdout]   --> src/models.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub enum ParameterType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParameterOption` is never constructed
[INFO] [stdout]   --> src/models.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct ParameterOption {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParameterValidation` is never constructed
[INFO] [stdout]   --> src/models.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct ParameterValidation {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path` and `order` are never read
[INFO] [stdout]   --> src/models.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct MenuCategory {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 72 |     pub name: String,
[INFO] [stdout] 73 |     pub path: PathBuf,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub order: i32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MenuCategory` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_parameters` is never used
[INFO] [stdout]    --> src/models.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl Script {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn parse_parameters(&self) -> Result<Vec<ScriptParameter>, serde_json::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> src/models.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 166 | impl MenuCategory {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `search_by_category`, `search_by_tags`, `get_suggestions`, and `highlight_matches` are never used
[INFO] [stdout]    --> src/search.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl SearchEngine {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn search_by_category(&self, scripts: &[Script], category: &str) -> Vec<Script> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn search_by_tags(&self, scripts: &[Script], tags: &[String]) -> Vec<Script> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn get_suggestions(&self, scripts: &[Script], partial_query: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn highlight_matches(&self, text: &str, query: &str) -> Vec<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SearchResult` is never constructed
[INFO] [stdout]    --> src/search.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub struct SearchResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `advanced_search` is never used
[INFO] [stdout]    --> src/search.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl SearchEngine {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] 172 |     pub fn advanced_search(&self, scripts: &[Script], query: &str) -> Vec<SearchResult> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `show_file_with_search` and `tail_with_search` are never used
[INFO] [stdout]    --> src/display.rs:187:18
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl ScriptExecutor {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub async fn show_file_with_search(&self, file_path: &str, search_term: Option<&str>) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub async fn tail_with_search(&self, file_path: &str, search_term: Option<&str>) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileViewer` is never constructed
[INFO] [stdout]    --> src/display.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 269 | pub struct FileViewer {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/display.rs:276:12
[INFO] [stdout]     |
[INFO] [stdout] 275 | impl FileViewer {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 276 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub async fn view_file(&mut self, path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub async fn search_in_file(&mut self, term: &str) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub async fn next_match(&mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub async fn previous_match(&mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     async fn display_file(&self) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 349 |     async fn display_context(&self, line_num: usize, lines: &[&str]) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 47.37s
[INFO] running `Command { std: "docker" "inspect" "828571a6d54ac6f5627a0062db5adce58fa216786aad6c0bf47fe185a45f7fd4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "828571a6d54ac6f5627a0062db5adce58fa216786aad6c0bf47fe185a45f7fd4", kill_on_drop: false }`
[INFO] [stdout] 828571a6d54ac6f5627a0062db5adce58fa216786aad6c0bf47fe185a45f7fd4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4bed49ac5949f02e5339c45eee83c4702dca58cae2c0b037e6d8df04cbcee463
[INFO] running `Command { std: "docker" "start" "-a" "4bed49ac5949f02e5339c45eee83c4702dca58cae2c0b037e6d8df04cbcee463", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.9.3
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]    Compiling rusqlite v0.30.0
[INFO] [stderr]    Compiling tui-input v0.8.0
[INFO] [stderr]    Compiling ratatui v0.24.0
[INFO] [stderr]    Compiling tempfile v3.21.0
[INFO] [stderr]    Compiling toolbox-menu v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `ProgressBar` and `ProgressStyle`
[INFO] [stdout]  --> src/display.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use indicatif::{ProgressBar, ProgressStyle};
[INFO] [stdout]   |                 ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tail_child`
[INFO] [stdout]    --> src/display.rs:241:17
[INFO] [stdout]     |
[INFO] [stdout] 241 |             let tail_child = tail_cmd.stdout(Stdio::piped()).spawn()?;
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tail_child`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_script_by_path` is never used
[INFO] [stdout]    --> src/database.rs:280:18
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl Database {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub async fn get_script_by_path(&self, path: &str) -> Result<Option<Script>> {
[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 `toolbox_path` and `debug` are never read
[INFO] [stdout]   --> src/menu.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct MenuSystem {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 13 |     database: Database,
[INFO] [stdout] 14 |     toolbox_path: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     debug: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `detect_script_features` is never used
[INFO] [stdout]    --> src/scanner.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl ScriptScanner {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn detect_script_features(&self, content: &str) -> ScriptFeatures {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScriptFeatures` is never constructed
[INFO] [stdout]    --> src/scanner.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub struct ScriptFeatures {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `show_progress_bar` is never used
[INFO] [stdout]    --> src/ui.rs:435:12
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl MenuUI {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 435 |     pub fn show_progress_bar(&mut self, title: &str, progress: f64) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScriptParameter` is never constructed
[INFO] [stdout]   --> src/models.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct ScriptParameter {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParameterType` is never used
[INFO] [stdout]   --> src/models.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub enum ParameterType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParameterOption` is never constructed
[INFO] [stdout]   --> src/models.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct ParameterOption {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParameterValidation` is never constructed
[INFO] [stdout]   --> src/models.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct ParameterValidation {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path` and `order` are never read
[INFO] [stdout]   --> src/models.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct MenuCategory {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 72 |     pub name: String,
[INFO] [stdout] 73 |     pub path: PathBuf,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub order: i32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MenuCategory` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_parameters` is never used
[INFO] [stdout]    --> src/models.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl Script {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn parse_parameters(&self) -> Result<Vec<ScriptParameter>, serde_json::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> src/models.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 166 | impl MenuCategory {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `search_by_category`, `search_by_tags`, `get_suggestions`, and `highlight_matches` are never used
[INFO] [stdout]    --> src/search.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl SearchEngine {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn search_by_category(&self, scripts: &[Script], category: &str) -> Vec<Script> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn search_by_tags(&self, scripts: &[Script], tags: &[String]) -> Vec<Script> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn get_suggestions(&self, scripts: &[Script], partial_query: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn highlight_matches(&self, text: &str, query: &str) -> Vec<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SearchResult` is never constructed
[INFO] [stdout]    --> src/search.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub struct SearchResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `advanced_search` is never used
[INFO] [stdout]    --> src/search.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl SearchEngine {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] 172 |     pub fn advanced_search(&self, scripts: &[Script], query: &str) -> Vec<SearchResult> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `show_file_with_search` and `tail_with_search` are never used
[INFO] [stdout]    --> src/display.rs:187:18
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl ScriptExecutor {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub async fn show_file_with_search(&self, file_path: &str, search_term: Option<&str>) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub async fn tail_with_search(&self, file_path: &str, search_term: Option<&str>) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileViewer` is never constructed
[INFO] [stdout]    --> src/display.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 269 | pub struct FileViewer {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/display.rs:276:12
[INFO] [stdout]     |
[INFO] [stdout] 275 | impl FileViewer {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 276 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub async fn view_file(&mut self, path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub async fn search_in_file(&mut self, term: &str) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub async fn next_match(&mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub async fn previous_match(&mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     async fn display_file(&self) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 349 |     async fn display_context(&self, line_num: usize, lines: &[&str]) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 8.63s
[INFO] running `Command { std: "docker" "inspect" "4bed49ac5949f02e5339c45eee83c4702dca58cae2c0b037e6d8df04cbcee463", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4bed49ac5949f02e5339c45eee83c4702dca58cae2c0b037e6d8df04cbcee463", kill_on_drop: false }`
[INFO] [stdout] 4bed49ac5949f02e5339c45eee83c4702dca58cae2c0b037e6d8df04cbcee463
