[INFO] cloning repository https://github.com/rajmenon/katana
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rajmenon/katana" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frajmenon%2Fkatana", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frajmenon%2Fkatana'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0c843e4ec96b6333dcb300554bdfecd7ff86e14f
[INFO] testing rajmenon/katana against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frajmenon%2Fkatana" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rajmenon/katana
[INFO] finished tweaking git repo https://github.com/rajmenon/katana
[INFO] tweaked toml for git repo https://github.com/rajmenon/katana written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rajmenon/katana on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rajmenon/katana 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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded usn-journal-rs v0.4.1
[INFO] [stderr]   Downloaded nucleo-matcher v0.3.1
[INFO] [stderr]   Downloaded serde_json v1.0.146
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e859f9a556b3406e0554bd281f58dee7a07fd98a42ef4c69f6f2a2ee3883d9fe
[INFO] running `Command { std: "docker" "start" "e859f9a556b3406e0554bd281f58dee7a07fd98a42ef4c69f6f2a2ee3883d9fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e859f9a556b3406e0554bd281f58dee7a07fd98a42ef4c69f6f2a2ee3883d9fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e859f9a556b3406e0554bd281f58dee7a07fd98a42ef4c69f6f2a2ee3883d9fe" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e859f9a556b3406e0554bd281f58dee7a07fd98a42ef4c69f6f2a2ee3883d9fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e859f9a556b3406e0554bd281f58dee7a07fd98a42ef4c69f6f2a2ee3883d9fe" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling find-msvc-tools v0.1.11
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling pkg-config v0.3.34
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling cc v1.4.3
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling serde_json v1.0.146
[INFO] [stderr]    Compiling katana v0.3.5 (/opt/rustwide/workdir/crates/katana)
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling ryu v1.0.22
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling nucleo-matcher v0.3.1
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling katana-core v0.3.5 (/opt/rustwide/workdir/crates/katana-core)
[INFO] [stderr]    Compiling katana-shot v0.3.5 (/opt/rustwide/workdir/crates/katana-shot)
[INFO] [stderr]    Compiling katana-index v0.3.5 (/opt/rustwide/workdir/crates/katana-index)
[INFO] [stdout] warning: function `boot_drive_letter` is never used
[INFO] [stdout]    --> crates/katana-index/src/lib.rs:603:4
[INFO] [stdout]     |
[INFO] [stdout] 603 | fn boot_drive_letter() -> Option<char> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling hashlink v0.9.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 toml v0.8.23
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling katana-todo v0.3.5 (/opt/rustwide/workdir/crates/katana-todo)
[INFO] [stderr]    Compiling katana-clip v0.3.5 (/opt/rustwide/workdir/crates/katana-clip)
[INFO] [stdout] warning: fields `name` and `path` are never read
[INFO] [stdout]  --> crates/katana/src/apps.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct AppEntry {
[INFO] [stdout]   |            -------- fields in this struct
[INFO] [stdout] 7 |     pub name: String,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 8 |     pub path: PathBuf,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AppEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scan_apps` is never used
[INFO] [stdout]   --> crates/katana/src/apps.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn scan_apps(dirs: &[PathBuf]) -> Vec<AppEntry> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scan_dir` is never used
[INFO] [stdout]   --> crates/katana/src/apps.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn scan_dir(dir: &Path, out: &mut Vec<AppEntry>, depth: u8) {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_apps` is never used
[INFO] [stdout]   --> crates/katana/src/apps.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn search_apps(apps: &[AppEntry], query: &str, limit: usize) -> Vec<Hit> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_if_file` is never used
[INFO] [stdout]    --> crates/katana/src/apps.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn push_if_file(out: &mut Vec<AppEntry>, path: PathBuf, name: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `builtin_programs` is never used
[INFO] [stdout]    --> crates/katana/src/apps.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn builtin_programs() -> Vec<AppEntry> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `strip_launch_ext` is never used
[INFO] [stdout]    --> crates/katana/src/apps.rs:155:4
[INFO] [stdout]     |
[INFO] [stdout] 155 | fn strip_launch_ext(q: &str) -> &str {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip_program_dir` is never used
[INFO] [stdout]    --> crates/katana/src/apps.rs:166:4
[INFO] [stdout]     |
[INFO] [stdout] 166 | fn skip_program_dir(name: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip_exe_stem` is never used
[INFO] [stdout]    --> crates/katana/src/apps.rs:184:4
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn skip_exe_stem(stem: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scan_installed_exes` is never used
[INFO] [stdout]    --> crates/katana/src/apps.rs:201:8
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub fn scan_installed_exes(cap: usize) -> Vec<AppEntry> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scan_exe_dir` is never used
[INFO] [stdout]    --> crates/katana/src/apps.rs:223:4
[INFO] [stdout]     |
[INFO] [stdout] 223 | fn scan_exe_dir(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dedup_apps` is never used
[INFO] [stdout]    --> crates/katana/src/apps.rs:284:8
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub fn dedup_apps(apps: &mut Vec<AppEntry>) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_programs` is never used
[INFO] [stdout]    --> crates/katana/src/apps.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn collect_programs() -> Vec<AppEntry> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_browser_bookmarks` is never used
[INFO] [stdout]   --> crates/katana/src/bookmarks.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn load_browser_bookmarks() -> Vec<Bookmark> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_browser_hint` is never used
[INFO] [stdout]   --> crates/katana/src/bookmarks.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn default_browser_hint() -> &'static str {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `progid_to_hint` is never used
[INFO] [stdout]   --> crates/katana/src/bookmarks.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn progid_to_hint(progid: &str) -> &'static str {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_chrome` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn load_chrome() -> Vec<Bookmark> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_edge` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn load_edge() -> Vec<Bookmark> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chrome_family` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn chrome_family(source: &str, path: PathBuf) -> Vec<Bookmark> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_chromium_bookmarks` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn parse_chromium_bookmarks(source: &str, json: &str) -> Vec<Bookmark> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `walk_chromium` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn walk_chromium(source: &str, node: &serde_json::Value, out: &mut Vec<Bookmark>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_firefox` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:169:4
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn load_firefox() -> Vec<Bookmark> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `firefox_places_path` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn firefox_places_path() -> Option<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `firefox_default_places` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:185:8
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub fn firefox_default_places(root: &Path, profiles_ini: &str) -> Option<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_firefox_places` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:222:4
[INFO] [stdout]     |
[INFO] [stdout] 222 | fn read_firefox_places(path: &Path) -> Vec<Bookmark> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_favorites` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | fn load_favorites() -> Vec<Bookmark> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `walk_favorites` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:258:4
[INFO] [stdout]     |
[INFO] [stdout] 258 | fn walk_favorites(dir: &Path, out: &mut Vec<Bookmark>, depth: u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_url_file` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:281:8
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub fn parse_url_file(path: &Path) -> Option<Bookmark> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_url_contents` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:291:8
[INFO] [stdout]     |
[INFO] [stdout] 291 | pub fn parse_url_contents(title: String, raw: &str) -> Option<Bookmark> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `local_appdata` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:307:4
[INFO] [stdout]     |
[INFO] [stdout] 307 | fn local_appdata() -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `roaming_appdata` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:313:4
[INFO] [stdout]     |
[INFO] [stdout] 313 | fn roaming_appdata() -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user_profile` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:319:4
[INFO] [stdout]     |
[INFO] [stdout] 319 | fn user_profile() -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Frame` is never constructed
[INFO] [stdout]  --> crates/katana/src/capture.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Frame {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture` is never used
[INFO] [stdout]   --> crates/katana/src/capture.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn capture(_mode: ShotMode, _last: Option<PhysRect>) -> Result<Frame, String> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_browser_or_window` is never used
[INFO] [stdout]   --> crates/katana/src/capture.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn capture_browser_or_window() -> Result<Frame, String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paste_into_hwnd` is never used
[INFO] [stdout]    --> crates/katana/src/capture.rs:394:8
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub fn paste_into_hwnd(_window: isize, _focus: isize) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ClipPayload` is never used
[INFO] [stdout]    --> crates/katana/src/capture.rs:462:10
[INFO] [stdout]     |
[INFO] [stdout] 462 | pub enum ClipPayload {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pick_clip_payload` is never used
[INFO] [stdout]    --> crates/katana/src/capture.rs:467:8
[INFO] [stdout]     |
[INFO] [stdout] 467 | pub fn pick_clip_payload(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_clipboard_png_dib` is never used
[INFO] [stdout]    --> crates/katana/src/capture.rs:519:8
[INFO] [stdout]     |
[INFO] [stdout] 519 | pub fn set_clipboard_png_dib(_png: &[u8], _dib: &[u8]) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_clipboard_text` is never used
[INFO] [stdout]    --> crates/katana/src/capture.rs:555:8
[INFO] [stdout]     |
[INFO] [stdout] 555 | pub fn set_clipboard_text(_text: &str) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_clipboard_text` is never used
[INFO] [stdout]    --> crates/katana/src/capture.rs:593:8
[INFO] [stdout]     |
[INFO] [stdout] 593 | pub fn read_clipboard_text(_max_chars: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_region` is never used
[INFO] [stdout]    --> crates/katana/src/capture.rs:597:8
[INFO] [stdout]     |
[INFO] [stdout] 597 | pub fn clamp_region(x0: i32, y0: i32, x1: i32, y1: i32) -> Option<PhysRect> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `crop_frame` is never used
[INFO] [stdout]    --> crates/katana/src/capture.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | pub fn crop_frame(full: &Frame, r: PhysRect) -> Option<Frame> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dim_bgra` is never used
[INFO] [stdout]    --> crates/katana/src/capture.rs:629:8
[INFO] [stdout]     |
[INFO] [stdout] 629 | pub fn dim_bgra(src: &[u8], num: u16, den: u16) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_and_capture_region` is never used
[INFO] [stdout]    --> crates/katana/src/capture.rs:649:4
[INFO] [stdout]     |
[INFO] [stdout] 649 | fn select_and_capture_region() -> Result<Frame, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_in_shell` is never used
[INFO] [stdout]   --> crates/katana/src/exec.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn open_in_shell(path: &std::path::Path) -> Result<(), String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmd_failed_label` is never used
[INFO] [stdout]    --> crates/katana/src/exec.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn cmd_failed_label(exit: i32, cmdline: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ES_CONTINUOUS` is never used
[INFO] [stdout]  --> crates/katana/src/keepawake.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const ES_CONTINUOUS: u32 = 0x8000_0000;
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ES_SYSTEM_REQUIRED` is never used
[INFO] [stdout]  --> crates/katana/src/keepawake.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const ES_SYSTEM_REQUIRED: u32 = 0x0000_0001;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ES_DISPLAY_REQUIRED` is never used
[INFO] [stdout]  --> crates/katana/src/keepawake.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const ES_DISPLAY_REQUIRED: u32 = 0x0000_0002;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ON` is never used
[INFO] [stdout]  --> crates/katana/src/keepawake.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | static ON: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]   |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_on` is never used
[INFO] [stdout]   --> crates/katana/src/keepawake.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn is_on() -> bool {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execution_state` is never used
[INFO] [stdout]   --> crates/katana/src/keepawake.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn execution_state(on: bool) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set` is never used
[INFO] [stdout]   --> crates/katana/src/keepawake.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn set(on: bool) -> bool {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle` is never used
[INFO] [stdout]   --> crates/katana/src/keepawake.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn toggle() -> bool {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply` is never used
[INFO] [stdout]   --> crates/katana/src/keepawake.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn apply(on: bool) {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Add`, `Edit`, and `Progress` are never constructed
[INFO] [stdout]   --> crates/katana/src/launcher.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum TodoInput {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 32 |     Add { buf: String },
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 33 |     Edit { id: i64, buf: String },
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 34 |     Progress { id: i64, buf: String },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TodoInput` 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: multiple fields are never read
[INFO] [stdout]   --> crates/katana/src/launcher.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Launcher {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 38 |     pub engine: Engine,
[INFO] [stdout] 39 |     pub todos: TodoStore,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 40 |     pub clips: ClipStore,
[INFO] [stdout] 41 |     pub last_region: Option<PhysRect>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 42 |     pub query: String,
[INFO] [stdout] 43 |     pub hits: Vec<Hit>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 44 |     pub selected: usize,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 45 |     pub dry_run: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 46 |     pub clip_history_limit: usize,
[INFO] [stdout] 47 |     pub todo_input: Option<TodoInput>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 48 |     pub file_sort: crate::search::FileSort,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 49 |     pub file_sort_desc: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 50 |     pub file_scroll: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 51 |     /// Char index in the editable prompt (query, or todo compose buffer).
[INFO] [stdout] 52 |     pub caret: usize,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 53 |     clip_preview: Option<(i64, u32, u32, Vec<u8>)>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> crates/katana/src/launcher.rs:57:12
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl Launcher {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  57 |     pub fn open(
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn open_default(dry_run: bool) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn search_limit(&self, raw: &str) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn set_query(&mut self, raw: &str) -> Vec<Hit> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn set_query_keep_caret(&mut self, raw: &str, caret: usize) -> Vec<Hit> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn apply_file_sort(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn cycle_file_sort(&mut self, col: crate::search::FileSort) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn ensure_file_scroll(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn scroll_files_by(&mut self, delta: i32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn page_files(&mut self, down: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     fn edit_buf(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     fn write_edit_buf(&mut self, s: String, caret: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn insert_at_caret(&mut self, ch: char) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     fn insert_str_at_caret(&mut self, extra: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn paste_keyword_arg(&mut self, raw: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn paste_into_compose(&mut self, raw: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub fn backspace_at_caret(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     pub fn delete_at_caret(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     pub fn move_caret(&mut self, delta: i32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub fn caret_home(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn caret_end(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub fn prompt_caret_index(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub fn set_prompt_caret(&mut self, prompt_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     pub fn execute_query(&mut self, raw: &str) -> Result<Outcome, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     pub fn execute_current(&mut self) -> Result<Outcome, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 402 |     fn execute_selected_hit(&mut self) -> Result<Outcome, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 466 |     fn execute_todo(&mut self, rest: &str) -> Result<Outcome, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 553 |     fn execute_clip(&mut self, hit: &katana_core::Hit) -> Result<Outcome, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn clear_clips(&mut self) -> Result<Outcome, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 587 |     pub fn delete_selected_clip(&mut self) -> Result<Outcome, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 616 |     fn toggle_awake(&mut self) -> Result<Outcome, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 622 |     pub fn go_home(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 627 |     pub fn go_back(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 641 |     pub fn prompt_text(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 651 |     pub fn composing(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 655 |     fn todo_list_query(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 671 |     fn selected_todo_id(&self) -> Option<i64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 679 |     pub fn begin_todo_add(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 685 |     pub fn begin_todo_filter(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 698 |     pub fn begin_todo_edit(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 711 |     pub fn begin_todo_progress(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 722 |     pub fn cancel_todo_input(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 726 |     pub fn push_todo_char(&mut self, c: char) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 736 |     pub fn pop_todo_char(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 746 |     pub fn commit_todo_input(&mut self) -> Result<Outcome, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 790 |     pub fn copy_selected_path(&self) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 802 |     pub fn mark_selected_todo_done(&mut self) -> Result<Outcome, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 813 |     pub fn apply_clip_history_limit(&mut self, n: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 825 |     pub fn clip_preview(&mut self, id: i64) -> Option<(u32, u32, Vec<u8>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 843 |     fn run_action(&self, action: &ResolvedAction) -> Result<Outcome, String> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 861 |     pub fn ingest_clipboard_text(&mut self, text: &str) -> Result<Option<i64>, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 879 |     pub fn complete_capture(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fit_thumb` is never used
[INFO] [stdout]    --> crates/katana/src/launcher.rs:914:4
[INFO] [stdout]     |
[INFO] [stdout] 914 | fn fit_thumb(w: u32, h: u32, max_w: u32, max_h: u32) -> (u32, u32) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_user_roots` is never used
[INFO] [stdout]    --> crates/katana/src/launcher.rs:928:8
[INFO] [stdout]     |
[INFO] [stdout] 928 | pub fn default_user_roots() -> Vec<std::path::PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `well_known_user_folders` is never used
[INFO] [stdout]    --> crates/katana/src/launcher.rs:936:8
[INFO] [stdout]     |
[INFO] [stdout] 936 | pub fn well_known_user_folders() -> Vec<(String, std::path::PathBuf)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `well_known_folder_hits` is never used
[INFO] [stdout]    --> crates/katana/src/launcher.rs:959:8
[INFO] [stdout]     |
[INFO] [stdout] 959 | pub fn well_known_folder_hits() -> Vec<Hit> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matching_folder_hits` is never used
[INFO] [stdout]    --> crates/katana/src/launcher.rs:966:8
[INFO] [stdout]     |
[INFO] [stdout] 966 | pub fn matching_folder_hits(query: &str) -> Vec<Hit> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `folder_hit` is never used
[INFO] [stdout]    --> crates/katana/src/launcher.rs:989:4
[INFO] [stdout]     |
[INFO] [stdout] 989 | fn folder_hit(name: &str, path: &std::path::Path, score: f32) -> Hit {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `crawl_roots` is never used
[INFO] [stdout]     --> crates/katana/src/launcher.rs:1005:8
[INFO] [stdout]      |
[INFO] [stdout] 1005 | pub fn crawl_roots() -> Vec<std::path::PathBuf> {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user_file_index` is never used
[INFO] [stdout]     --> crates/katana/src/launcher.rs:1020:4
[INFO] [stdout]      |
[INFO] [stdout] 1020 | fn user_file_index() -> katana_index::NameIndex {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `index_program_exes` is never used
[INFO] [stdout]     --> crates/katana/src/launcher.rs:1033:4
[INFO] [stdout]      |
[INFO] [stdout] 1033 | fn index_program_exes(idx: &mut katana_index::NameIndex, apps: &[crate::apps::AppEntry]) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rebuild_file_index` is never used
[INFO] [stdout]     --> crates/katana/src/launcher.rs:1061:8
[INFO] [stdout]      |
[INFO] [stdout] 1061 | pub fn rebuild_file_index() -> katana_index::NameIndex {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_indexes` is never used
[INFO] [stdout]     --> crates/katana/src/launcher.rs:1068:8
[INFO] [stdout]      |
[INFO] [stdout] 1068 | pub fn build_indexes() -> (
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `data_dir` is never used
[INFO] [stdout]  --> crates/katana/src/persist.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn data_dir() -> PathBuf {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `keywords_path` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn keywords_path() -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_path` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn settings_path() -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Settings` is never constructed
[INFO] [stdout]   --> crates/katana/src/persist.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Settings {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLIP_HISTORY_CHOICES` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const CLIP_HISTORY_CHOICES: &[usize] = &[25, 50, 100, 200, 500];
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_clip_history_limit` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn default_clip_history_limit() -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_clip_history_limit` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn clamp_clip_history_limit(n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clip_history_choice_index` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn clip_history_choice_index(n: usize) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clip_history_limit_from_index` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn clip_history_limit_from_index(i: i32) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_hotkey` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn default_hotkey() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_clip_hotkey` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn default_clip_hotkey() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_files_hotkey` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn default_files_hotkey() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HK_ALT` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:89:11
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub const HK_ALT: u32 = 0x0001;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HK_CTRL` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:90:11
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub const HK_CTRL: u32 = 0x0002;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HK_SHIFT` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:91:11
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub const HK_SHIFT: u32 = 0x0004;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HK_WIN` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:92:11
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub const HK_WIN: u32 = 0x0008;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HK_NOREPEAT` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:93:11
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub const HK_NOREPEAT: u32 = 0x4000;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_hotkey` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn parse_hotkey(s: &str) -> Option<(u32, u32)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_true` is never used
[INFO] [stdout]    --> crates/katana/src/persist.rs:124:4
[INFO] [stdout]     |
[INFO] [stdout] 124 | fn default_true() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shot_dir` is never used
[INFO] [stdout]    --> crates/katana/src/persist.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub fn shot_dir() -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_shot_path` is never used
[INFO] [stdout]    --> crates/katana/src/persist.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub fn next_shot_path() -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `load` and `save` are never used
[INFO] [stdout]    --> crates/katana/src/persist.rs:161:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | impl Settings {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 161 |     pub fn load(path: &Path) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn save(&self, path: &Path) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeywordFile` is never constructed
[INFO] [stdout]    --> crates/katana/src/persist.rs:221:8
[INFO] [stdout]     |
[INFO] [stdout] 221 | struct KeywordFile {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_keywords` is never used
[INFO] [stdout]    --> crates/katana/src/persist.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn load_keywords(path: &Path) -> Vec<Keyword> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_keywords` is never used
[INFO] [stdout]    --> crates/katana/src/persist.rs:236:8
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub fn save_keywords(path: &Path, kws: &[Keyword]) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `folder_keywords` is never used
[INFO] [stdout]    --> crates/katana/src/persist.rs:247:8
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub fn folder_keywords() -> Vec<Keyword> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_folder_keywords` is never used
[INFO] [stdout]    --> crates/katana/src/persist.rs:273:8
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub fn merge_folder_keywords(kws: &mut Vec<Keyword>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_keyword_file` is never used
[INFO] [stdout]    --> crates/katana/src/persist.rs:288:8
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub fn ensure_keyword_file() -> Vec<Keyword> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_autostart` is never used
[INFO] [stdout]    --> crates/katana/src/persist.rs:348:8
[INFO] [stdout]     |
[INFO] [stdout] 348 | pub fn set_autostart(_on: bool) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `apps`, `files`, `bookmarks`, and `recents` are never read
[INFO] [stdout]   --> crates/katana/src/search.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Engine {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 15 |     pub keywords: Vec<katana_core::Keyword>,
[INFO] [stdout] 16 |     pub apps: Vec<AppEntry>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 17 |     pub files: NameIndex,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 18 |     pub bookmarks: Vec<Bookmark>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 19 |     pub recents: Vec<Hit>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `search`, and `hits_for` are never used
[INFO] [stdout]   --> crates/katana/src/search.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Engine {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 23 |     pub fn new(apps: Vec<AppEntry>, files: NameIndex) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn search(
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     fn hits_for(
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mark_shortcut` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:296:8
[INFO] [stdout]     |
[INFO] [stdout] 296 | pub fn mark_shortcut(cmd: &str, letter: char) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `launch_hits` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:317:4
[INFO] [stdout]     |
[INFO] [stdout] 317 | fn launch_hits(engine: &Engine, query: &str, limit: usize) -> Vec<Hit> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shortcut_hits` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:335:4
[INFO] [stdout]     |
[INFO] [stdout] 335 | fn shortcut_hits(engine: &Engine, query: &str, limit: usize) -> Vec<Hit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bookmark_hits` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:377:4
[INFO] [stdout]     |
[INFO] [stdout] 377 | fn bookmark_hits(bookmarks: &[Bookmark], query: &str, limit: usize) -> Vec<Hit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bookmark_hit` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:405:4
[INFO] [stdout]     |
[INFO] [stdout] 405 | fn bookmark_hit(b: &Bookmark, score: f32) -> Hit {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `command_hits` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:415:4
[INFO] [stdout]     |
[INFO] [stdout] 415 | fn command_hits() -> Vec<Hit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `row_detail` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:456:8
[INFO] [stdout]     |
[INFO] [stdout] 456 | pub fn row_detail(h: &Hit) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_home_query` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:473:8
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub fn is_home_query(q: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_todo_blade` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:477:8
[INFO] [stdout]     |
[INFO] [stdout] 477 | pub fn is_todo_blade(q: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_clip_blade` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:481:8
[INFO] [stdout]     |
[INFO] [stdout] 481 | pub fn is_clip_blade(q: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_file_blade` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:485:8
[INFO] [stdout]     |
[INFO] [stdout] 485 | pub fn is_file_blade(q: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_scroll_mode` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:490:8
[INFO] [stdout]     |
[INFO] [stdout] 490 | pub fn list_scroll_mode(q: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_page` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:495:8
[INFO] [stdout]     |
[INFO] [stdout] 495 | pub fn list_page(_q: &str) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Score`, `Name`, `Modified`, `Type`, and `Size` are never constructed
[INFO] [stdout]    --> crates/katana/src/search.rs:501:5
[INFO] [stdout]     |
[INFO] [stdout] 500 | pub enum FileSort {
[INFO] [stdout]     |          -------- variants in this enum
[INFO] [stdout] 501 |     Score,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 502 |     Name,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 503 |     Modified,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 504 |     Type,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 505 |     Size,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FileSort` 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: function `file_column_at` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:509:8
[INFO] [stdout]     |
[INFO] [stdout] 509 | pub fn file_column_at(x: i32) -> FileSort {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sort_file_hits` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:521:8
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub fn sort_file_hits(hits: &mut [Hit], sort: FileSort, desc: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_PAGE` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:550:11
[INFO] [stdout]     |
[INFO] [stdout] 550 | pub const FILE_PAGE: usize = 8;
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_SEARCH_LIMIT` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:551:11
[INFO] [stdout]     |
[INFO] [stdout] 551 | pub const FILE_SEARCH_LIMIT: usize = 64;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_caret` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:553:8
[INFO] [stdout]     |
[INFO] [stdout] 553 | pub fn clamp_caret(len: usize, caret: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insert_str_at` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:557:8
[INFO] [stdout]     |
[INFO] [stdout] 557 | pub fn insert_str_at(s: &str, caret: usize, extra: &str) -> (String, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insert_at` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:573:8
[INFO] [stdout]     |
[INFO] [stdout] 573 | pub fn insert_at(s: &str, caret: usize, ch: char) -> (String, usize) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `backspace_at` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:589:8
[INFO] [stdout]     |
[INFO] [stdout] 589 | pub fn backspace_at(s: &str, caret: usize) -> (String, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_at` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:602:8
[INFO] [stdout]     |
[INFO] [stdout] 602 | pub fn delete_at(s: &str, caret: usize) -> (String, usize) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_caret` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:615:8
[INFO] [stdout]     |
[INFO] [stdout] 615 | pub fn move_caret(len: usize, caret: usize, delta: i32) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_scroll_keep_visible` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn file_scroll_keep_visible(len: usize, vis: usize, selected: usize, scroll: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scrollbar_thumb` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:642:8
[INFO] [stdout]     |
[INFO] [stdout] 642 | pub fn scrollbar_thumb(len: usize, vis: usize, scroll: usize, track_h: i32) -> Option<(i32, i32)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prompt_scroll_px` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:658:8
[INFO] [stdout]     |
[INFO] [stdout] 658 | pub fn prompt_scroll_px(caret_px: i32, avail: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scroll_from_track_click` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:663:8
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub fn scroll_from_track_click(len: usize, vis: usize, track_h: i32, click_y: i32) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clip_hit_is_image` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:672:8
[INFO] [stdout]     |
[INFO] [stdout] 672 | pub fn clip_hit_is_image(h: &Hit) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_blade_query` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:679:8
[INFO] [stdout]     |
[INFO] [stdout] 679 | pub fn is_blade_query(q: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parent_query` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:684:8
[INFO] [stdout]     |
[INFO] [stdout] 684 | pub fn parent_query(raw: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `todo_list_mode` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:702:8
[INFO] [stdout]     |
[INFO] [stdout] 702 | pub fn todo_list_mode(q: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blade_footer` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:713:8
[INFO] [stdout]     |
[INFO] [stdout] 713 | pub fn blade_footer(q: &str, composing: bool) -> Option<&'static str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `todo_hit` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:744:4
[INFO] [stdout]     |
[INFO] [stdout] 744 | fn todo_hit(t: katana_todo::Task) -> Hit {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parent_label` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:759:4
[INFO] [stdout]     |
[INFO] [stdout] 759 | fn parent_label(path: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_hit` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:768:4
[INFO] [stdout]     |
[INFO] [stdout] 768 | fn file_hit(f: katana_index::FileHit) -> Hit {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dedupe_by_path` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:785:4
[INFO] [stdout]     |
[INFO] [stdout] 785 | fn dedupe_by_path(hits: Vec<Hit>, prefer_file: bool) -> Vec<Hit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `app_hit` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:814:4
[INFO] [stdout]     |
[INFO] [stdout] 814 | fn app_hit(a: &AppEntry) -> Hit {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_clip_clear_cmd` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:824:8
[INFO] [stdout]     |
[INFO] [stdout] 824 | pub fn is_clip_clear_cmd(q: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_clips_hit` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:831:4
[INFO] [stdout]     |
[INFO] [stdout] 831 | fn clear_clips_hit() -> Hit {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_modified` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:842:8
[INFO] [stdout]     |
[INFO] [stdout] 842 | pub fn format_modified(unix_secs: u64) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `launch_path` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:875:8
[INFO] [stdout]     |
[INFO] [stdout] 875 | pub fn launch_path(h: &Hit) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `STATE` is never used
[INFO] [stdout]  --> crates/katana/src/ui.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) static STATE: Mutex<Option<Launcher>> = Mutex::new(None);
[INFO] [stdout]   |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `LAST_SHOT` is never used
[INFO] [stdout]  --> crates/katana/src/ui.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | static LAST_SHOT: Mutex<Option<std::path::PathBuf>> = Mutex::new(None);
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TrayEvent` is never used
[INFO] [stdout]   --> crates/katana/src/ui.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(crate) enum TrayEvent {
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `classify_tray_event` is never used
[INFO] [stdout]   --> crates/katana/src/ui.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) fn classify_tray_event(lparam: u32) -> Option<TrayEvent> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 09s
[INFO] running `Command { std: "docker" "inspect" "e859f9a556b3406e0554bd281f58dee7a07fd98a42ef4c69f6f2a2ee3883d9fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e859f9a556b3406e0554bd281f58dee7a07fd98a42ef4c69f6f2a2ee3883d9fe" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling katana-index v0.3.5 (/opt/rustwide/workdir/crates/katana-index)
[INFO] [stderr]    Compiling katana-shot v0.3.5 (/opt/rustwide/workdir/crates/katana-shot)
[INFO] [stdout] warning: function `boot_drive_letter` is never used
[INFO] [stdout]    --> crates/katana-index/src/lib.rs:603:4
[INFO] [stdout]     |
[INFO] [stdout] 603 | fn boot_drive_letter() -> Option<char> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling katana-clip v0.3.5 (/opt/rustwide/workdir/crates/katana-clip)
[INFO] [stderr]    Compiling katana-todo v0.3.5 (/opt/rustwide/workdir/crates/katana-todo)
[INFO] [stderr]    Compiling katana-core v0.3.5 (/opt/rustwide/workdir/crates/katana-core)
[INFO] [stderr]    Compiling katana v0.3.5 (/opt/rustwide/workdir/crates/katana)
[INFO] [stdout] warning: function `boot_drive_letter` is never used
[INFO] [stdout]    --> crates/katana-index/src/lib.rs:603:4
[INFO] [stdout]     |
[INFO] [stdout] 603 | fn boot_drive_letter() -> Option<char> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_if_file` is never used
[INFO] [stdout]    --> crates/katana/src/apps.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn push_if_file(out: &mut Vec<AppEntry>, path: PathBuf, name: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `builtin_programs` is never used
[INFO] [stdout]    --> crates/katana/src/apps.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn builtin_programs() -> Vec<AppEntry> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scan_installed_exes` is never used
[INFO] [stdout]    --> crates/katana/src/apps.rs:201:8
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub fn scan_installed_exes(cap: usize) -> Vec<AppEntry> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dedup_apps` is never used
[INFO] [stdout]    --> crates/katana/src/apps.rs:284:8
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub fn dedup_apps(apps: &mut Vec<AppEntry>) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_programs` is never used
[INFO] [stdout]    --> crates/katana/src/apps.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn collect_programs() -> Vec<AppEntry> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_browser_bookmarks` is never used
[INFO] [stdout]   --> crates/katana/src/bookmarks.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn load_browser_bookmarks() -> Vec<Bookmark> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_browser_hint` is never used
[INFO] [stdout]   --> crates/katana/src/bookmarks.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn default_browser_hint() -> &'static str {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_chrome` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn load_chrome() -> Vec<Bookmark> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_edge` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn load_edge() -> Vec<Bookmark> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chrome_family` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn chrome_family(source: &str, path: PathBuf) -> Vec<Bookmark> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_firefox` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:169:4
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn load_firefox() -> Vec<Bookmark> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `firefox_places_path` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn firefox_places_path() -> Option<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_firefox_places` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:222:4
[INFO] [stdout]     |
[INFO] [stdout] 222 | fn read_firefox_places(path: &Path) -> Vec<Bookmark> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_favorites` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | fn load_favorites() -> Vec<Bookmark> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `walk_favorites` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:258:4
[INFO] [stdout]     |
[INFO] [stdout] 258 | fn walk_favorites(dir: &Path, out: &mut Vec<Bookmark>, depth: u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_url_file` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:281:8
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub fn parse_url_file(path: &Path) -> Option<Bookmark> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `local_appdata` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:307:4
[INFO] [stdout]     |
[INFO] [stdout] 307 | fn local_appdata() -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `roaming_appdata` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:313:4
[INFO] [stdout]     |
[INFO] [stdout] 313 | fn roaming_appdata() -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user_profile` is never used
[INFO] [stdout]    --> crates/katana/src/bookmarks.rs:319:4
[INFO] [stdout]     |
[INFO] [stdout] 319 | fn user_profile() -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_browser_or_window` is never used
[INFO] [stdout]   --> crates/katana/src/capture.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn capture_browser_or_window() -> Result<Frame, String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paste_into_hwnd` is never used
[INFO] [stdout]    --> crates/katana/src/capture.rs:394:8
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub fn paste_into_hwnd(_window: isize, _focus: isize) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_clipboard_text` is never used
[INFO] [stdout]    --> crates/katana/src/capture.rs:593:8
[INFO] [stdout]     |
[INFO] [stdout] 593 | pub fn read_clipboard_text(_max_chars: usize) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_and_capture_region` is never used
[INFO] [stdout]    --> crates/katana/src/capture.rs:649:4
[INFO] [stdout]     |
[INFO] [stdout] 649 | fn select_and_capture_region() -> Result<Frame, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Progress` is never constructed
[INFO] [stdout]   --> crates/katana/src/launcher.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum TodoInput {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     Progress { id: i64, buf: String },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TodoInput` 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: multiple associated items are never used
[INFO] [stdout]    --> crates/katana/src/launcher.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl Launcher {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn open_default(dry_run: bool) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn caret_end(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub fn prompt_caret_index(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub fn set_prompt_caret(&mut self, prompt_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 587 |     pub fn delete_selected_clip(&mut self) -> Result<Outcome, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 641 |     pub fn prompt_text(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 711 |     pub fn begin_todo_progress(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_user_roots` is never used
[INFO] [stdout]    --> crates/katana/src/launcher.rs:928:8
[INFO] [stdout]     |
[INFO] [stdout] 928 | pub fn default_user_roots() -> Vec<std::path::PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `crawl_roots` is never used
[INFO] [stdout]     --> crates/katana/src/launcher.rs:1005:8
[INFO] [stdout]      |
[INFO] [stdout] 1005 | pub fn crawl_roots() -> Vec<std::path::PathBuf> {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user_file_index` is never used
[INFO] [stdout]     --> crates/katana/src/launcher.rs:1020:4
[INFO] [stdout]      |
[INFO] [stdout] 1020 | fn user_file_index() -> katana_index::NameIndex {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `index_program_exes` is never used
[INFO] [stdout]     --> crates/katana/src/launcher.rs:1033:4
[INFO] [stdout]      |
[INFO] [stdout] 1033 | fn index_program_exes(idx: &mut katana_index::NameIndex, apps: &[crate::apps::AppEntry]) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rebuild_file_index` is never used
[INFO] [stdout]     --> crates/katana/src/launcher.rs:1061:8
[INFO] [stdout]      |
[INFO] [stdout] 1061 | pub fn rebuild_file_index() -> katana_index::NameIndex {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_indexes` is never used
[INFO] [stdout]     --> crates/katana/src/launcher.rs:1068:8
[INFO] [stdout]      |
[INFO] [stdout] 1068 | pub fn build_indexes() -> (
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `keywords_path` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn keywords_path() -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_path` is never used
[INFO] [stdout]   --> crates/katana/src/persist.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn settings_path() -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_keyword_file` is never used
[INFO] [stdout]    --> crates/katana/src/persist.rs:288:8
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub fn ensure_keyword_file() -> Vec<Keyword> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_autostart` is never used
[INFO] [stdout]    --> crates/katana/src/persist.rs:348:8
[INFO] [stdout]     |
[INFO] [stdout] 348 | pub fn set_autostart(_on: bool) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_modified` is never used
[INFO] [stdout]    --> crates/katana/src/search.rs:842:8
[INFO] [stdout]     |
[INFO] [stdout] 842 | pub fn format_modified(unix_secs: u64) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `STATE` is never used
[INFO] [stdout]  --> crates/katana/src/ui.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) static STATE: Mutex<Option<Launcher>> = Mutex::new(None);
[INFO] [stdout]   |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `LAST_SHOT` is never used
[INFO] [stdout]  --> crates/katana/src/ui.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | static LAST_SHOT: Mutex<Option<std::path::PathBuf>> = Mutex::new(None);
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 49.18s
[INFO] running `Command { std: "docker" "inspect" "e859f9a556b3406e0554bd281f58dee7a07fd98a42ef4c69f6f2a2ee3883d9fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e859f9a556b3406e0554bd281f58dee7a07fd98a42ef4c69f6f2a2ee3883d9fe" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: function `boot_drive_letter` is never used
[INFO] [stderr]    --> crates/katana-index/src/lib.rs:603:4
[INFO] [stderr]     |
[INFO] [stderr] 603 | fn boot_drive_letter() -> Option<char> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `katana-index` (lib) generated 1 warning
[INFO] [stderr] warning: `katana-index` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr] warning: function `push_if_file` is never used
[INFO] [stderr]    --> crates/katana/src/apps.rs:117:4
[INFO] [stderr]     |
[INFO] [stderr] 117 | fn push_if_file(out: &mut Vec<AppEntry>, path: PathBuf, name: &str) {
[INFO] [stderr]     |    ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `builtin_programs` is never used
[INFO] [stderr]    --> crates/katana/src/apps.rs:127:8
[INFO] [stderr]     |
[INFO] [stderr] 127 | pub fn builtin_programs() -> Vec<AppEntry> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `scan_installed_exes` is never used
[INFO] [stderr]    --> crates/katana/src/apps.rs:201:8
[INFO] [stderr]     |
[INFO] [stderr] 201 | pub fn scan_installed_exes(cap: usize) -> Vec<AppEntry> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `dedup_apps` is never used
[INFO] [stderr]    --> crates/katana/src/apps.rs:284:8
[INFO] [stderr]     |
[INFO] [stderr] 284 | pub fn dedup_apps(apps: &mut Vec<AppEntry>) {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `collect_programs` is never used
[INFO] [stderr]    --> crates/katana/src/apps.rs:293:8
[INFO] [stderr]     |
[INFO] [stderr] 293 | pub fn collect_programs() -> Vec<AppEntry> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_browser_bookmarks` is never used
[INFO] [stderr]   --> crates/katana/src/bookmarks.rs:13:8
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub fn load_browser_bookmarks() -> Vec<Bookmark> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_browser_hint` is never used
[INFO] [stderr]   --> crates/katana/src/bookmarks.rs:42:8
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub fn default_browser_hint() -> &'static str {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_chrome` is never used
[INFO] [stderr]    --> crates/katana/src/bookmarks.rs:105:4
[INFO] [stderr]     |
[INFO] [stderr] 105 | fn load_chrome() -> Vec<Bookmark> {
[INFO] [stderr]     |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_edge` is never used
[INFO] [stderr]    --> crates/katana/src/bookmarks.rs:112:4
[INFO] [stderr]     |
[INFO] [stderr] 112 | fn load_edge() -> Vec<Bookmark> {
[INFO] [stderr]     |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `chrome_family` is never used
[INFO] [stderr]    --> crates/katana/src/bookmarks.rs:119:4
[INFO] [stderr]     |
[INFO] [stderr] 119 | fn chrome_family(source: &str, path: PathBuf) -> Vec<Bookmark> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_firefox` is never used
[INFO] [stderr]    --> crates/katana/src/bookmarks.rs:169:4
[INFO] [stderr]     |
[INFO] [stderr] 169 | fn load_firefox() -> Vec<Bookmark> {
[INFO] [stderr]     |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `firefox_places_path` is never used
[INFO] [stderr]    --> crates/katana/src/bookmarks.rs:179:4
[INFO] [stderr]     |
[INFO] [stderr] 179 | fn firefox_places_path() -> Option<PathBuf> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_firefox_places` is never used
[INFO] [stderr]    --> crates/katana/src/bookmarks.rs:222:4
[INFO] [stderr]     |
[INFO] [stderr] 222 | fn read_firefox_places(path: &Path) -> Vec<Bookmark> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_favorites` is never used
[INFO] [stderr]    --> crates/katana/src/bookmarks.rs:250:4
[INFO] [stderr]     |
[INFO] [stderr] 250 | fn load_favorites() -> Vec<Bookmark> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `walk_favorites` is never used
[INFO] [stderr]    --> crates/katana/src/bookmarks.rs:258:4
[INFO] [stderr]     |
[INFO] [stderr] 258 | fn walk_favorites(dir: &Path, out: &mut Vec<Bookmark>, depth: u8) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_url_file` is never used
[INFO] [stderr]    --> crates/katana/src/bookmarks.rs:281:8
[INFO] [stderr]     |
[INFO] [stderr] 281 | pub fn parse_url_file(path: &Path) -> Option<Bookmark> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `local_appdata` is never used
[INFO] [stderr]    --> crates/katana/src/bookmarks.rs:307:4
[INFO] [stderr]     |
[INFO] [stderr] 307 | fn local_appdata() -> PathBuf {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `roaming_appdata` is never used
[INFO] [stderr]    --> crates/katana/src/bookmarks.rs:313:4
[INFO] [stderr]     |
[INFO] [stderr] 313 | fn roaming_appdata() -> PathBuf {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `user_profile` is never used
[INFO] [stderr]    --> crates/katana/src/bookmarks.rs:319:4
[INFO] [stderr]     |
[INFO] [stderr] 319 | fn user_profile() -> PathBuf {
[INFO] [stderr]     |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `capture_browser_or_window` is never used
[INFO] [stderr]   --> crates/katana/src/capture.rs:33:8
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub fn capture_browser_or_window() -> Result<Frame, String> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `paste_into_hwnd` is never used
[INFO] [stderr]    --> crates/katana/src/capture.rs:394:8
[INFO] [stderr]     |
[INFO] [stderr] 394 | pub fn paste_into_hwnd(_window: isize, _focus: isize) -> Result<(), String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_clipboard_text` is never used
[INFO] [stderr]    --> crates/katana/src/capture.rs:593:8
[INFO] [stderr]     |
[INFO] [stderr] 593 | pub fn read_clipboard_text(_max_chars: usize) -> Option<String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `select_and_capture_region` is never used
[INFO] [stderr]    --> crates/katana/src/capture.rs:649:4
[INFO] [stderr]     |
[INFO] [stderr] 649 | fn select_and_capture_region() -> Result<Frame, String> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Progress` is never constructed
[INFO] [stderr]   --> crates/katana/src/launcher.rs:34:5
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub enum TodoInput {
[INFO] [stderr]    |          --------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 34 |     Progress { id: i64, buf: String },
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TodoInput` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> crates/katana/src/launcher.rs:85:12
[INFO] [stderr]     |
[INFO] [stderr]  56 | impl Launcher {
[INFO] [stderr]     | ------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  85 |     pub fn open_default(dry_run: bool) -> Result<Self, String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 314 |     pub fn caret_end(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 319 |     pub fn prompt_caret_index(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 329 |     pub fn set_prompt_caret(&mut self, prompt_index: usize) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 587 |     pub fn delete_selected_clip(&mut self) -> Result<Outcome, String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 641 |     pub fn prompt_text(&self) -> String {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 711 |     pub fn begin_todo_progress(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_user_roots` is never used
[INFO] [stderr]    --> crates/katana/src/launcher.rs:928:8
[INFO] [stderr]     |
[INFO] [stderr] 928 | pub fn default_user_roots() -> Vec<std::path::PathBuf> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `crawl_roots` is never used
[INFO] [stderr]     --> crates/katana/src/launcher.rs:1005:8
[INFO] [stderr]      |
[INFO] [stderr] 1005 | pub fn crawl_roots() -> Vec<std::path::PathBuf> {
[INFO] [stderr]      |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `user_file_index` is never used
[INFO] [stderr]     --> crates/katana/src/launcher.rs:1020:4
[INFO] [stderr]      |
[INFO] [stderr] 1020 | fn user_file_index() -> katana_index::NameIndex {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `index_program_exes` is never used
[INFO] [stderr]     --> crates/katana/src/launcher.rs:1033:4
[INFO] [stderr]      |
[INFO] [stderr] 1033 | fn index_program_exes(idx: &mut katana_index::NameIndex, apps: &[crate::apps::AppEntry]) {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `rebuild_file_index` is never used
[INFO] [stderr]     --> crates/katana/src/launcher.rs:1061:8
[INFO] [stderr]      |
[INFO] [stderr] 1061 | pub fn rebuild_file_index() -> katana_index::NameIndex {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `build_indexes` is never used
[INFO] [stderr]     --> crates/katana/src/launcher.rs:1068:8
[INFO] [stderr]      |
[INFO] [stderr] 1068 | pub fn build_indexes() -> (
[INFO] [stderr]      |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `keywords_path` is never used
[INFO] [stderr]   --> crates/katana/src/persist.rs:16:8
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub fn keywords_path() -> PathBuf {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `settings_path` is never used
[INFO] [stderr]   --> crates/katana/src/persist.rs:20:8
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub fn settings_path() -> PathBuf {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `ensure_keyword_file` is never used
[INFO] [stderr]    --> crates/katana/src/persist.rs:288:8
[INFO] [stderr]     |
[INFO] [stderr] 288 | pub fn ensure_keyword_file() -> Vec<Keyword> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `set_autostart` is never used
[INFO] [stderr]    --> crates/katana/src/persist.rs:348:8
[INFO] [stderr]     |
[INFO] [stderr] 348 | pub fn set_autostart(_on: bool) -> Result<(), String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `format_modified` is never used
[INFO] [stderr]    --> crates/katana/src/search.rs:842:8
[INFO] [stderr]     |
[INFO] [stderr] 842 | pub fn format_modified(unix_secs: u64) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `STATE` is never used
[INFO] [stderr]  --> crates/katana/src/ui.rs:7:19
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub(crate) static STATE: Mutex<Option<Launcher>> = Mutex::new(None);
[INFO] [stderr]   |                   ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `LAST_SHOT` is never used
[INFO] [stderr]  --> crates/katana/src/ui.rs:8:8
[INFO] [stderr]   |
[INFO] [stderr] 8 | static LAST_SHOT: Mutex<Option<std::path::PathBuf>> = Mutex::new(None);
[INFO] [stderr]   |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `katana` (bin "katana" test) generated 38 warnings
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/katana-d48ceab7c1df1f6c)
[INFO] [stdout] 
[INFO] [stdout] running 62 tests
[INFO] [stdout] test capture::tests::clip_prefers_text_over_dib_preview ... ok
[INFO] [stdout] test bookmarks::tests::firefox_ini_picks_default_profile ... FAILED
[INFO] [stdout] test exec::tests::open_in_shell_rejects_empty ... ok
[INFO] [stdout] test apps::tests::terminal_matches_by_name_and_powershell_by_stem ... ok
[INFO] [stdout] test keepawake::tests::toggle_flips_session_flag ... ok
[INFO] [stdout] test keepawake::tests::flags_include_display_when_on ... ok
[INFO] [stdout] test exec::tests::perform_describes_url_without_requiring_browser_success_path ... ok
[INFO] [stdout] test capture::tests::capture_last_without_region_errors ... ok
[INFO] [stdout] test bookmarks::tests::chromium_json_walks_nested_urls ... ok
[INFO] [stdout] test bookmarks::tests::url_file_reads_internet_shortcut ... ok
[INFO] [stdout] test bookmarks::tests::progid_maps_common_browsers ... ok
[INFO] [stdout] test capture::tests::dim_bgra_scales_channels ... ok
[INFO] [stdout] test capture::tests::clamp_region_normalizes_and_rejects_tiny ... ok
[INFO] [stdout] test apps::tests::scan_exes_skips_uninstallers_and_indexes_programs ... ok
[INFO] [stdout] test exec::tests::cmd_failed_label_includes_exit ... ok
[INFO] [stdout] test capture::tests::crop_frame_extracts_subrect ... ok
[INFO] [stdout] test capture::tests::clip_image_from_dib_when_png_missing ... ok
[INFO] [stdout] test apps::tests::scan_and_rank_exe_in_dir ... ok
[INFO] [stdout] test exec::tests::run_shell_exit_1 ... FAILED
[INFO] [stdout] test launcher::tests::awake_command_toggles_session_flag ... ok
[INFO] [stdout] test launcher::tests::capture_writes_png_dib_and_remembers_region ... ok
[INFO] [stdout] test launcher::tests::clip_ingest_dedups_and_is_searchable ... ok
[INFO] [stdout] test launcher::tests::dry_run_shell_does_not_fail ... ok
[INFO] [stdout] test launcher::tests::file_search_uses_reconstructed_mft_path ... ok
[INFO] [stdout] test launcher::tests::copy_selected_file_path ... ok
[INFO] [stdout] test launcher::tests::go_back_steps_through_blade_then_home ... ok
[INFO] [stdout] test launcher::tests::caret_edits_middle_of_file_query_and_scrolls ... ok
[INFO] [stdout] test launcher::tests::file_hotkey_query_has_trailing_space_and_sorts ... ok
[INFO] [stdout] test persist::tests::clip_history_limit_clamps_and_maps_combo ... ok
[INFO] [stdout] test persist::tests::missing_files_use_defaults ... ok
[INFO] [stdout] test persist::tests::keywords_roundtrip_preserves_url_and_names ... ok
[INFO] [stdout] test persist::tests::parse_hotkey_win_alt_defaults ... ok
[INFO] [stdout] test persist::tests::merge_folder_keywords_adds_downloads ... ok
[INFO] [stdout] test launcher::tests::clip_enter_dry_run_copies_payload ... ok
[INFO] [stdout] test launcher::tests::clip_history_limit_drops_oldest_unpinned ... ok
[INFO] [stdout] test search::tests::calc_hit_uses_shipped_eval ... ok
[INFO] [stdout] test search::tests::empty_query_shows_command_palette ... ok
[INFO] [stdout] test persist::tests::shot_path_is_under_pictures_katana ... ok
[INFO] [stdout] test persist::tests::settings_roundtrip ... ok
[INFO] [stdout] test search::tests::mark_shortcut_brackets_the_letter ... ok
[INFO] [stdout] test search::tests::file_empty_query_lists_user_folders ... ok
[INFO] [stdout] test search::tests::launch_combines_apps_shortcuts_and_run_command ... ok
[INFO] [stdout] test search::tests::file_route_uses_index ... FAILED
[INFO] [stdout] test search::tests::bookmarks_lists_url_keywords ... ok
[INFO] [stdout] test search::tests::short_aliases_route ... ok
[INFO] [stdout] test tests::keyword_g_expands_via_shipped_tokens ... ok
[INFO] [stdout] test tests::query_parse_roundtrip ... ok
[INFO] [stdout] test search::tests::router_verbs_g_todo_clip_shot_f_shell ... ok
[INFO] [stdout] test tests::shipped_router_covers_planned_verbs ... ok
[INFO] [stdout] test ui::tests::tray_balloon_click_opens_last_shot ... ok
[INFO] [stdout] test launcher::tests::paste_after_keyword_and_todo_progress_filter ... ok
[INFO] [stdout] test launcher::tests::clip_clear_wipes_history ... ok
[INFO] [stdout] test launcher::tests::clip_preview_returns_scaled_thumbnail ... ok
[INFO] [stdout] test launcher::tests::apply_clip_history_limit_trims_existing ... ok
[INFO] [stdout] test launcher::tests::shell_elevate_only_on_bang ... ok
[INFO] [stdout] test search::tests::todo_slash_filters_progress_including_completed ... ok
[INFO] [stdout] test launcher::tests::todo_add_hits_same_store_as_list ... ok
[INFO] [stdout] test launcher::tests::shot_short_commands_need_capture ... ok
[INFO] [stdout] test launcher::tests::todo_overlay_add_edit_done_and_showall ... ok
[INFO] [stdout] test launcher::tests::type_g_rust_executes_google_url ... ok
[INFO] [stdout] test launcher::tests::todo_progress_updates_percent_and_status ... ok
[INFO] [stdout] test launcher::tests::clip_and_todo_lists_scroll_like_files ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- bookmarks::tests::firefox_ini_picks_default_profile stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'bookmarks::tests::firefox_ini_picks_default_profile' (1385) panicked at crates/katana/src/bookmarks.rs:366:9:
[INFO] [stdout] C:\ff/Profiles\bb.def/places.sqlite
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x60679ee7f566 - <unknown>
[INFO] [stdout]    1:     0x60679eda4fd4 - <unknown>
[INFO] [stdout]    2:     0x60679ee843cc - <unknown>
[INFO] [stdout]    3:     0x60679ee57492 - <unknown>
[INFO] [stdout]    4:     0x60679ee77331 - <unknown>
[INFO] [stdout]    5:     0x60679ee77512 - <unknown>
[INFO] [stdout]    6:     0x60679ee57542 - <unknown>
[INFO] [stdout]    7:     0x60679ee50129 - <unknown>
[INFO] [stdout]    8:     0x60679ee5c96d - <unknown>
[INFO] [stdout]    9:     0x60679eda575c - <unknown>
[INFO] [stdout]   10:     0x60679edb5170 - <unknown>
[INFO] [stdout]   11:     0x60679ede07da - <unknown>
[INFO] [stdout]   12:     0x60679ee8616b - <unknown>
[INFO] [stdout]   13:     0x60679ee938b2 - <unknown>
[INFO] [stdout]   14:     0x60679ee8d434 - <unknown>
[INFO] [stdout]   15:     0x60679ee97312 - <unknown>
[INFO] [stdout]   16:     0x60679ee7e487 - <unknown>
[INFO] [stdout]   17:     0x7bd50f2c8dfa - <unknown>
[INFO] [stdout]   18:     0x7bd50f35c3d4 - clone
[INFO] [stdout]   19:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- exec::tests::run_shell_exit_1 stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'exec::tests::run_shell_exit_1' (1397) panicked at crates/katana/src/exec.rs:177:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: Err(1)
[INFO] [stdout]  right: Ok(())
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x60679ee7f566 - <unknown>
[INFO] [stdout]    1:     0x60679eda4fd4 - <unknown>
[INFO] [stdout]    2:     0x60679ee843cc - <unknown>
[INFO] [stdout]    3:     0x60679ee57492 - <unknown>
[INFO] [stdout]    4:     0x60679ee77331 - <unknown>
[INFO] [stdout]    5:     0x60679ee77512 - <unknown>
[INFO] [stdout]    6:     0x60679ee57542 - <unknown>
[INFO] [stdout]    7:     0x60679ee50129 - <unknown>
[INFO] [stdout]    8:     0x60679ee5c96d - <unknown>
[INFO] [stdout]    9:     0x60679eda575c - <unknown>
[INFO] [stdout]   10:     0x60679eda5673 - <unknown>
[INFO] [stdout]   11:     0x60679edb4eac - <unknown>
[INFO] [stdout]   12:     0x60679edd35f9 - <unknown>
[INFO] [stdout]   13:     0x60679ee8616b - <unknown>
[INFO] [stdout]   14:     0x60679ee938b2 - <unknown>
[INFO] [stdout]   15:     0x60679ee8d434 - <unknown>
[INFO] [stdout]   16:     0x60679ee97312 - <unknown>
[INFO] [stdout]   17:     0x60679ee7e487 - <unknown>
[INFO] [stdout]   18:     0x7bd50f2c8dfa - <unknown>
[INFO] [stdout]   19:     0x7bd50f35c3d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- search::tests::file_route_uses_index stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'search::tests::file_route_uses_index' (1435) panicked at crates/katana/src/search.rs:962:9:
[INFO] [stdout] assertion `left != right` failed
[INFO] [stdout]   left: "C:\\docs\\invoice.pdf"
[INFO] [stdout]  right: "C:\\docs\\invoice.pdf"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x60679ee7f566 - <unknown>
[INFO] [stdout]    1:     0x60679eda4fd4 - <unknown>
[INFO] [stdout]    2:     0x60679ee843cc - <unknown>
[INFO] [stdout]    3:     0x60679ee57492 - <unknown>
[INFO] [stdout]    4:     0x60679ee77331 - <unknown>
[INFO] [stdout]    5:     0x60679ee77512 - <unknown>
[INFO] [stdout]    6:     0x60679ee57542 - <unknown>
[INFO] [stdout]    7:     0x60679ee50129 - <unknown>
[INFO] [stdout]    8:     0x60679ee5c96d - <unknown>
[INFO] [stdout]    9:     0x60679eda575c - <unknown>
[INFO] [stdout]   10:     0x60679eda5673 - <unknown>
[INFO] [stdout]   11:     0x60679edb4f1b - <unknown>
[INFO] [stdout]   12:     0x60679edd40b6 - <unknown>
[INFO] [stdout]   13:     0x60679ee8616b - <unknown>
[INFO] [stdout]   14:     0x60679ee938b2 - <unknown>
[INFO] [stdout]   15:     0x60679ee8d434 - <unknown>
[INFO] [stdout]   16:     0x60679ee97312 - <unknown>
[INFO] [stdout]   17:     0x60679ee7e487 - <unknown>
[INFO] [stdout]   18:     0x7bd50f2c8dfa - <unknown>
[INFO] [stdout]   19:     0x7bd50f35c3d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     bookmarks::tests::firefox_ini_picks_default_profile
[INFO] [stdout]     exec::tests::run_shell_exit_1
[INFO] [stdout]     search::tests::file_route_uses_index
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 59 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.46s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p katana --bin katana`
[INFO] running `Command { std: "docker" "inspect" "e859f9a556b3406e0554bd281f58dee7a07fd98a42ef4c69f6f2a2ee3883d9fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e859f9a556b3406e0554bd281f58dee7a07fd98a42ef4c69f6f2a2ee3883d9fe", kill_on_drop: false }`
[INFO] [stdout] e859f9a556b3406e0554bd281f58dee7a07fd98a42ef4c69f6f2a2ee3883d9fe
