[INFO] cloning repository https://github.com/tenex-chat/tui [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tenex-chat/tui" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftenex-chat%2Ftui", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftenex-chat%2Ftui'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b368650d429e99691623c4e750e9549733a74883 [INFO] linting tenex-chat/tui against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftenex-chat%2Ftui" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/tenex-chat/tui [INFO] finished tweaking git repo https://github.com/tenex-chat/tui [INFO] tweaked toml for git repo https://github.com/tenex-chat/tui written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/tenex-chat/tui on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/tenex-chat/tui 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating git repository `https://github.com/pablof7z/nostrdb-rs` [INFO] [stderr] Updating git submodule `https://github.com/damus-io/nostrdb` [INFO] [stderr] Updating git submodule `https://github.com/bitcoin-core/secp256k1` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded uniffi_pipeline v0.29.5 [INFO] [stderr] Downloaded uniffi v0.29.5 [INFO] [stderr] Downloaded askama v0.13.1 [INFO] [stderr] Downloaded symphonia v0.5.5 [INFO] [stderr] Downloaded flatbuffers v23.5.26 [INFO] [stderr] Downloaded symphonia-metadata v0.5.5 [INFO] [stderr] Downloaded symphonia-bundle-mp3 v0.5.5 [INFO] [stderr] Downloaded askama_parser v0.13.0 [INFO] [stderr] Downloaded keyring v3.6.3 [INFO] [stderr] Downloaded symphonia-core v0.5.5 [INFO] [stderr] Downloaded zip v7.4.0 [INFO] [stderr] Downloaded typed-path v0.12.2 [INFO] [stderr] Downloaded pulldown-cmark v0.12.2 [INFO] [stderr] Downloaded uniffi_bindgen v0.29.5 [INFO] [stderr] Downloaded zlib-rs v0.6.0 [INFO] [stderr] Downloaded async-wsocket v0.13.1 [INFO] [stderr] Downloaded libflate v2.2.1 [INFO] [stderr] Downloaded askama_derive v0.13.1 [INFO] [stderr] Downloaded uniffi_core v0.29.5 [INFO] [stderr] Downloaded minisign-verify v0.2.4 [INFO] [stderr] Downloaded uniffi_meta v0.29.5 [INFO] [stderr] Downloaded uniffi_macros v0.29.5 [INFO] [stderr] Downloaded uniffi_internal_macros v0.29.5 [INFO] [stderr] Downloaded nostr-ndb v0.44.0 [INFO] [stderr] Downloaded libflate_lz77 v2.2.0 [INFO] [stderr] Downloaded uniffi_udl v0.29.5 [INFO] [stderr] Downloaded libsodium-sys-stable v1.23.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f7210fc80f4718f7755975cb60f30ad302da1c4dc0c28ffed0513d2ec766f70b [INFO] running `Command { std: "docker" "start" "-a" "f7210fc80f4718f7755975cb60f30ad302da1c4dc0c28ffed0513d2ec766f70b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f7210fc80f4718f7755975cb60f30ad302da1c4dc0c28ffed0513d2ec766f70b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f7210fc80f4718f7755975cb60f30ad302da1c4dc0c28ffed0513d2ec766f70b", kill_on_drop: false }` [INFO] [stdout] f7210fc80f4718f7755975cb60f30ad302da1c4dc0c28ffed0513d2ec766f70b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4d80a2a5ea3d6fa6da8cc49472c739353b72e43fb758b09d2121b59e168b6701 [INFO] running `Command { std: "docker" "start" "-a" "4d80a2a5ea3d6fa6da8cc49472c739353b72e43fb758b09d2121b59e168b6701", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling cc v1.2.55 [INFO] [stderr] Checking memchr v2.7.6 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking crypto-common v0.1.7 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking socket2 v0.6.2 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Checking tokio v1.49.0 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking block-padding v0.3.3 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Checking inout v0.1.4 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling anyhow v1.0.101 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking tinyvec v1.10.0 [INFO] [stderr] Checking thiserror v2.0.18 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling secp256k1-sys v0.10.1 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling bitcoin-io v0.1.4 [INFO] [stderr] Compiling uniffi_internal_macros v0.29.5 [INFO] [stderr] Compiling clang-sys v1.8.1 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking universal-hash v0.5.1 [INFO] [stderr] Compiling core2 v0.4.0 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling prettyplease v0.2.37 [INFO] [stderr] Compiling simd-adler32 v0.3.8 [INFO] [stderr] Compiling bumpalo v3.19.1 [INFO] [stderr] Compiling zlib-rs v0.6.0 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling rle-decode-fast v1.0.3 [INFO] [stderr] Compiling libflate_lz77 v2.2.0 [INFO] [stderr] Compiling zopfli v0.8.3 [INFO] [stderr] Checking password-hash v0.5.0 [INFO] [stderr] Checking rustls-webpki v0.103.9 [INFO] [stderr] Checking poly1305 v0.8.0 [INFO] [stderr] Compiling ureq-proto v0.5.3 [INFO] [stderr] Checking pbkdf2 v0.12.2 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling xattr v1.6.1 [INFO] [stderr] Checking chacha20 v0.9.1 [INFO] [stderr] Checking salsa20 v0.10.2 [INFO] [stderr] Checking hex-conservative v0.2.2 [INFO] [stderr] Compiling filetime v0.2.27 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking rand_core v0.9.5 [INFO] [stderr] Checking aead v0.5.2 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling typed-path v0.12.2 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling dary_heap v0.3.8 [INFO] [stderr] Compiling adler32 v1.2.0 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling ureq v3.2.0 [INFO] [stderr] Compiling libflate v2.2.1 [INFO] [stderr] Checking scrypt v0.11.0 [INFO] [stderr] Checking secp256k1 v0.29.1 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking chacha20poly1305 v0.10.1 [INFO] [stderr] Checking bitcoin_hashes v0.14.1 [INFO] [stderr] Compiling tar v0.4.44 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking unicode-normalization v0.1.25 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Checking cbc v0.1.2 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Compiling fs-err v2.11.0 [INFO] [stderr] Compiling libloading v0.8.9 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking bech32 v0.11.1 [INFO] [stderr] Compiling home v0.5.12 [INFO] [stderr] Compiling minisign-verify v0.2.4 [INFO] [stderr] Compiling zip v7.4.0 [INFO] [stderr] Compiling bindgen v0.69.5 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Checking h2 v0.4.13 [INFO] [stderr] Checking tempfile v3.24.0 [INFO] [stderr] Checking nostr v0.44.2 [INFO] [stderr] Compiling which v4.4.2 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling cexpr v0.6.0 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Compiling libsodium-sys-stable v1.23.2 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling camino v1.2.2 [INFO] [stderr] Checking ryu v1.0.22 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking uniffi_pipeline v0.29.5 [INFO] [stderr] Checking tungstenite v0.26.2 [INFO] [stderr] Checking tokio-rustls v0.26.4 [INFO] [stderr] Checking webpki-roots v0.26.11 [INFO] [stderr] Compiling flatbuffers v23.5.26 [INFO] [stderr] Compiling basic-toml v0.1.10 [INFO] [stderr] Checking hyper v1.8.1 [INFO] [stderr] Compiling askama_parser v0.13.0 [INFO] [stderr] Compiling scroll_derive v0.12.1 [INFO] [stderr] Compiling rustc-hash v2.1.1 [INFO] [stderr] Checking lru v0.16.3 [INFO] [stderr] Checking smawk v0.3.2 [INFO] [stderr] Checking textwrap v0.16.2 [INFO] [stderr] Checking scroll v0.12.0 [INFO] [stderr] Checking nostr-database v0.44.0 [INFO] [stderr] Checking uniffi_meta v0.29.5 [INFO] [stderr] Checking weedle2 v5.0.0 [INFO] [stderr] Checking hyper-util v0.1.20 [INFO] [stderr] Checking tokio-tungstenite v0.26.2 [INFO] [stderr] Checking tower v0.5.3 [INFO] [stderr] Checking tokio-socks v0.5.2 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking cargo-platform v0.1.9 [INFO] [stderr] Checking semver v1.0.27 [INFO] [stderr] Checking clap_lex v0.7.7 [INFO] [stderr] Checking plain v0.2.3 [INFO] [stderr] Checking goblin v0.8.2 [INFO] [stderr] Checking clap_builder v4.5.57 [INFO] [stderr] Checking async-wsocket v0.13.1 [INFO] [stderr] Checking cargo_metadata v0.19.2 [INFO] [stderr] Checking uniffi_udl v0.29.5 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Compiling askama_derive v0.13.1 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Compiling nostrdb v0.8.0 (https://github.com/pablof7z/nostrdb-rs?branch=master#70b00bb5) [INFO] [stderr] Compiling toml v0.5.11 [INFO] [stderr] Checking async-utility v0.3.1 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Checking atomic-destructor v0.3.0 [INFO] [stderr] Checking negentropy v0.5.0 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking nostr-relay-pool v0.44.0 [INFO] [stderr] Checking tower-http v0.6.8 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking uniffi_core v0.29.5 [INFO] [stderr] Checking nostr-gossip v0.44.0 [INFO] [stderr] Checking reqwest v0.12.28 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking uuid v1.20.0 [INFO] [stderr] Checking keyring v3.6.3 [INFO] [stderr] Checking bytemuck v1.25.0 [INFO] [stderr] Checking signal-hook v0.3.18 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Checking fdeflate v0.3.7 [INFO] [stderr] Compiling uniffi_macros v0.29.5 [INFO] [stderr] Checking pxfm v0.1.27 [INFO] [stderr] Compiling alsa-sys v0.3.1 [INFO] [stderr] Checking symphonia-core v0.5.5 [INFO] [stderr] Checking clap v4.5.57 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Checking png v0.18.0 [INFO] [stderr] Checking nostr-sdk v0.44.1 [INFO] [stderr] Checking askama v0.13.1 [INFO] [stderr] Checking uniffi_bindgen v0.29.5 [INFO] [stderr] Checking signal-hook-mio v0.2.5 [INFO] [stderr] Checking gethostname v1.1.0 [INFO] [stderr] Checking x11rb-protocol v0.13.2 [INFO] [stderr] Checking symphonia-metadata v0.5.5 [INFO] [stderr] Checking crossterm v0.28.1 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling cpal v0.15.3 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Checking chrono v0.4.43 [INFO] [stderr] Checking ogg v0.8.0 [INFO] [stderr] Checking symphonia-bundle-mp3 v0.5.5 [INFO] [stderr] Checking moxcms v0.7.11 [INFO] [stderr] Checking alsa v0.9.1 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Checking itertools v0.13.0 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling pulldown-cmark v0.12.2 [INFO] [stderr] Checking dasp_sample v0.11.0 [INFO] [stderr] Checking x11rb v0.13.2 [INFO] [stderr] Checking axum-core v0.4.5 [INFO] [stderr] Checking compact_str v0.8.1 [INFO] [stderr] Checking unicode-truncate v1.1.0 [INFO] [stderr] Checking strum v0.26.3 [INFO] [stderr] Checking symphonia v0.5.5 [INFO] [stderr] Checking lewton v0.10.2 [INFO] [stderr] Checking getopts v0.2.24 [INFO] [stderr] Compiling libsqlite3-sys v0.28.0 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Checking pulldown-cmark-escape v0.11.0 [INFO] [stderr] Checking claxon v0.4.3 [INFO] [stderr] Checking hound v3.5.1 [INFO] [stderr] Checking ratatui v0.29.0 [INFO] [stderr] Checking rodio v0.19.0 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking image v0.25.9 [INFO] [stderr] Checking axum v0.7.9 [INFO] [stderr] Checking tower-http v0.5.2 [INFO] [stderr] Checking hashlink v0.9.1 [INFO] [stderr] Checking arboard v3.6.1 [INFO] [stderr] Checking rusqlite v0.31.0 [INFO] [stderr] Checking uniffi v0.29.5 [INFO] [stderr] Checking nostr-ndb v0.44.0 [INFO] [stderr] Checking tenex-core v0.1.0 (/opt/rustwide/workdir/crates/tenex-core) [INFO] [stdout] warning: value assigned to `request_type` is never read [INFO] [stdout] --> crates/tenex-core/src/nostr/bunker.rs:398:28 [INFO] [stdout] | [INFO] [stdout] 398 | let mut request_type = "Unknown".to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `request_type` is never read [INFO] [stdout] --> crates/tenex-core/src/nostr/bunker.rs:398:28 [INFO] [stdout] | [INFO] [stdout] 398 | let mut request_type = "Unknown".to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ai/audio_notifications.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | notifications.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 248 - notifications.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 248 + notifications.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> crates/tenex-core/src/events.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | / pub enum CoreEvent { [INFO] [stdout] 17 | | Message(Message), [INFO] [stdout] | | ---------------- the largest variant contains at least 424 bytes [INFO] [stdout] 18 | | ProjectStatus(ProjectStatus), [INFO] [stdout] 19 | | /// Backend approval request - UI should show modal to approve/block [INFO] [stdout] 20 | | PendingBackendApproval(PendingBackendApproval), [INFO] [stdout] | | ---------------------------------------------- the second-largest variant contains at least 216 bytes [INFO] [stdout] 21 | | /// Report created or updated (kind:30023) [INFO] [stdout] 22 | | ReportUpsert(Report), [INFO] [stdout] 23 | | } [INFO] [stdout] | |_^ the entire enum is at least 424 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 17 - Message(Message), [INFO] [stdout] 17 + Message(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-core/src/ffi/agents_api.rs:379:5 [INFO] [stdout] | [INFO] [stdout] 379 | / pub fn create_nudge( [INFO] [stdout] 380 | | &self, [INFO] [stdout] 381 | | title: String, [INFO] [stdout] 382 | | description: String, [INFO] [stdout] ... | [INFO] [stdout] 387 | | only_tools: Vec, [INFO] [stdout] 388 | | ) -> Result<(), TenexError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> crates/tenex-core/src/ffi/agents_api.rs:640:23 [INFO] [stdout] | [INFO] [stdout] 640 | agents.iter().cloned().collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] = note: `#[warn(clippy::iter_cloned_collect)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-core/src/ffi/agents_api.rs:755:5 [INFO] [stdout] | [INFO] [stdout] 755 | / pub fn create_agent_definition( [INFO] [stdout] 756 | | &self, [INFO] [stdout] 757 | | name: String, [INFO] [stdout] 758 | | description: String, [INFO] [stdout] ... | [INFO] [stdout] 763 | | is_fork: bool, [INFO] [stdout] 764 | | ) -> Result<(), TenexError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ai/audio_notifications.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | notifications.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 248 - notifications.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 248 + notifications.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> crates/tenex-core/src/ffi/data_api.rs:284:49 [INFO] [stdout] | [INFO] [stdout] 284 | .get_document_threads(&report_a_tag) [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 285 | | .iter() [INFO] [stdout] 286 | | .cloned() [INFO] [stdout] 287 | | .collect(); [INFO] [stdout] | |______________________^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ffi/data_api.rs:320:9 [INFO] [stdout] | [INFO] [stdout] 320 | fetched.sort_by(|a, b| b.last_activity.cmp(&a.last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 320 - fetched.sort_by(|a, b| b.last_activity.cmp(&a.last_activity)); [INFO] [stdout] 320 + fetched.sort_by_key(|b| std::cmp::Reverse(b.last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ffi/data_api.rs:437:9 [INFO] [stdout] | [INFO] [stdout] 437 | results.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 437 - results.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 437 + results.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> crates/tenex-core/src/events.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | / pub enum CoreEvent { [INFO] [stdout] 17 | | Message(Message), [INFO] [stdout] | | ---------------- the largest variant contains at least 424 bytes [INFO] [stdout] 18 | | ProjectStatus(ProjectStatus), [INFO] [stdout] 19 | | /// Backend approval request - UI should show modal to approve/block [INFO] [stdout] 20 | | PendingBackendApproval(PendingBackendApproval), [INFO] [stdout] | | ---------------------------------------------- the second-largest variant contains at least 216 bytes [INFO] [stdout] 21 | | /// Report created or updated (kind:30023) [INFO] [stdout] 22 | | ReportUpsert(Report), [INFO] [stdout] 23 | | } [INFO] [stdout] | |_^ the entire enum is at least 424 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 17 - Message(Message), [INFO] [stdout] 17 + Message(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ffi/internal_impl.rs:229:13 [INFO] [stdout] | [INFO] [stdout] 229 | event_counts.sort_by(|a, b| b.count.cmp(&a.count)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 229 - event_counts.sort_by(|a, b| b.count.cmp(&a.count)); [INFO] [stdout] 229 + event_counts.sort_by_key(|b| std::cmp::Reverse(b.count)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-core/src/ffi/agents_api.rs:379:5 [INFO] [stdout] | [INFO] [stdout] 379 | / pub fn create_nudge( [INFO] [stdout] 380 | | &self, [INFO] [stdout] 381 | | title: String, [INFO] [stdout] 382 | | description: String, [INFO] [stdout] ... | [INFO] [stdout] 387 | | only_tools: Vec, [INFO] [stdout] 388 | | ) -> Result<(), TenexError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/tenex-core/src/ffi/messaging_api.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | / pub fn send_thread( [INFO] [stdout] 10 | | &self, [INFO] [stdout] 11 | | project_id: String, [INFO] [stdout] 12 | | title: String, [INFO] [stdout] ... | [INFO] [stdout] 18 | | reference_report_a_tag: Option, [INFO] [stdout] 19 | | ) -> Result { [INFO] [stdout] | |______________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> crates/tenex-core/src/ffi/agents_api.rs:640:23 [INFO] [stdout] | [INFO] [stdout] 640 | agents.iter().cloned().collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] = note: `#[warn(clippy::iter_cloned_collect)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-core/src/ffi/agents_api.rs:755:5 [INFO] [stdout] | [INFO] [stdout] 755 | / pub fn create_agent_definition( [INFO] [stdout] 756 | | &self, [INFO] [stdout] 757 | | name: String, [INFO] [stdout] 758 | | description: String, [INFO] [stdout] ... | [INFO] [stdout] 763 | | is_fork: bool, [INFO] [stdout] 764 | | ) -> Result<(), TenexError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-core/src/ffi/projects_api.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | / pub fn update_project( [INFO] [stdout] 35 | | &self, [INFO] [stdout] 36 | | project_id: String, [INFO] [stdout] 37 | | title: String, [INFO] [stdout] ... | [INFO] [stdout] 42 | | mcp_tool_ids: Vec, [INFO] [stdout] 43 | | ) -> Result<(), TenexError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ffi/stats_api.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | runtime_by_day.sort_by(|a, b| b.day_start.cmp(&a.day_start)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 46 - runtime_by_day.sort_by(|a, b| b.day_start.cmp(&a.day_start)); [INFO] [stdout] 46 + runtime_by_day.sort_by_key(|b| std::cmp::Reverse(b.day_start)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ffi/stats_api.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | messages_by_day.sort_by(|a, b| b.day_start.cmp(&a.day_start)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 71 - messages_by_day.sort_by(|a, b| b.day_start.cmp(&a.day_start)); [INFO] [stdout] 71 + messages_by_day.sort_by_key(|b| std::cmp::Reverse(b.day_start)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ffi/stats_api.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | activity_by_hour.sort_by(|a, b| a.hour_start.cmp(&b.hour_start)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 130 - activity_by_hour.sort_by(|a, b| a.hour_start.cmp(&b.hour_start)); [INFO] [stdout] 130 + activity_by_hour.sort_by_key(|a| a.hour_start); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ffi/trust_api.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | pending.sort_by(|a, b| b.first_seen.cmp(&a.first_seen)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 156 - pending.sort_by(|a, b| b.first_seen.cmp(&a.first_seen)); [INFO] [stdout] 156 + pending.sort_by_key(|b| std::cmp::Reverse(b.first_seen)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/tenex-core/src/ffi/mod.rs:400:5 [INFO] [stdout] | [INFO] [stdout] 400 | !(trimmed == "-") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(trimmed != "-")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> crates/tenex-core/src/ffi/data_api.rs:284:49 [INFO] [stdout] | [INFO] [stdout] 284 | .get_document_threads(&report_a_tag) [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 285 | | .iter() [INFO] [stdout] 286 | | .cloned() [INFO] [stdout] 287 | | .collect(); [INFO] [stdout] | |______________________^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ffi/data_api.rs:320:9 [INFO] [stdout] | [INFO] [stdout] 320 | fetched.sort_by(|a, b| b.last_activity.cmp(&a.last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 320 - fetched.sort_by(|a, b| b.last_activity.cmp(&a.last_activity)); [INFO] [stdout] 320 + fetched.sort_by_key(|b| std::cmp::Reverse(b.last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ffi/data_api.rs:437:9 [INFO] [stdout] | [INFO] [stdout] 437 | results.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 437 - results.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 437 + results.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> crates/tenex-core/src/ffi/mod.rs:758:61 [INFO] [stdout] | [INFO] [stdout] 758 | ... .map(|agents| agents.iter().cloned().collect()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> crates/tenex-core/src/ffi/mod.rs:825:51 [INFO] [stdout] | [INFO] [stdout] 825 | bookmarked_ids: bookmarked_ids.iter().cloned().collect(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ffi/internal_impl.rs:229:13 [INFO] [stdout] | [INFO] [stdout] 229 | event_counts.sort_by(|a, b| b.count.cmp(&a.count)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 229 - event_counts.sort_by(|a, b| b.count.cmp(&a.count)); [INFO] [stdout] 229 + event_counts.sort_by_key(|b| std::cmp::Reverse(b.count)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/tenex-core/src/ffi/messaging_api.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | / pub fn send_thread( [INFO] [stdout] 10 | | &self, [INFO] [stdout] 11 | | project_id: String, [INFO] [stdout] 12 | | title: String, [INFO] [stdout] ... | [INFO] [stdout] 18 | | reference_report_a_tag: Option, [INFO] [stdout] 19 | | ) -> Result { [INFO] [stdout] | |______________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-core/src/ffi/projects_api.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | / pub fn update_project( [INFO] [stdout] 35 | | &self, [INFO] [stdout] 36 | | project_id: String, [INFO] [stdout] 37 | | title: String, [INFO] [stdout] ... | [INFO] [stdout] 42 | | mcp_tool_ids: Vec, [INFO] [stdout] 43 | | ) -> Result<(), TenexError> { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ffi/stats_api.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | runtime_by_day.sort_by(|a, b| b.day_start.cmp(&a.day_start)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 46 - runtime_by_day.sort_by(|a, b| b.day_start.cmp(&a.day_start)); [INFO] [stdout] 46 + runtime_by_day.sort_by_key(|b| std::cmp::Reverse(b.day_start)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ffi/stats_api.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | messages_by_day.sort_by(|a, b| b.day_start.cmp(&a.day_start)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 71 - messages_by_day.sort_by(|a, b| b.day_start.cmp(&a.day_start)); [INFO] [stdout] 71 + messages_by_day.sort_by_key(|b| std::cmp::Reverse(b.day_start)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ffi/stats_api.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | activity_by_hour.sort_by(|a, b| a.hour_start.cmp(&b.hour_start)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 130 - activity_by_hour.sort_by(|a, b| a.hour_start.cmp(&b.hour_start)); [INFO] [stdout] 130 + activity_by_hour.sort_by_key(|a| a.hour_start); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/ffi/trust_api.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | pending.sort_by(|a, b| b.first_seen.cmp(&a.first_seen)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 156 - pending.sort_by(|a, b| b.first_seen.cmp(&a.first_seen)); [INFO] [stdout] 156 + pending.sort_by_key(|b| std::cmp::Reverse(b.first_seen)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/tenex-core/src/ffi/mod.rs:400:5 [INFO] [stdout] | [INFO] [stdout] 400 | !(trimmed == "-") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(trimmed != "-")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> crates/tenex-core/src/ffi/mod.rs:758:61 [INFO] [stdout] | [INFO] [stdout] 758 | ... .map(|agents| agents.iter().cloned().collect()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> crates/tenex-core/src/ffi/mod.rs:825:51 [INFO] [stdout] | [INFO] [stdout] 825 | bookmarked_ids: bookmarked_ids.iter().cloned().collect(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/agent_definition.rs:75:33 [INFO] [stdout] | [INFO] [stdout] 75 | / ... if version.is_none() { [INFO] [stdout] 76 | | ... version = Some(value.to_string()); [INFO] [stdout] 77 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 74 ~ "version" [INFO] [stdout] 75 ~ if version.is_none() => { [INFO] [stdout] 76 | version = Some(value.to_string()); [INFO] [stdout] 77 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/models/draft.rs:339:9 [INFO] [stdout] | [INFO] [stdout] 339 | drafts.sort_by(|a, b| b.last_modified.cmp(&a.last_modified)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 339 - drafts.sort_by(|a, b| b.last_modified.cmp(&a.last_modified)); [INFO] [stdout] 339 + drafts.sort_by_key(|b| std::cmp::Reverse(b.last_modified)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/models/draft.rs:346:9 [INFO] [stdout] | [INFO] [stdout] 346 | drafts.sort_by(|a, b| b.last_modified.cmp(&a.last_modified)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 346 - drafts.sort_by(|a, b| b.last_modified.cmp(&a.last_modified)); [INFO] [stdout] 346 + drafts.sort_by_key(|b| std::cmp::Reverse(b.last_modified)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/agent_definition.rs:75:33 [INFO] [stdout] | [INFO] [stdout] 75 | / ... if version.is_none() { [INFO] [stdout] 76 | | ... version = Some(value.to_string()); [INFO] [stdout] 77 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 74 ~ "version" [INFO] [stdout] 75 ~ if version.is_none() => { [INFO] [stdout] 76 | version = Some(value.to_string()); [INFO] [stdout] 77 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/models/draft.rs:339:9 [INFO] [stdout] | [INFO] [stdout] 339 | drafts.sort_by(|a, b| b.last_modified.cmp(&a.last_modified)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 339 - drafts.sort_by(|a, b| b.last_modified.cmp(&a.last_modified)); [INFO] [stdout] 339 + drafts.sort_by_key(|b| std::cmp::Reverse(b.last_modified)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/models/draft.rs:346:9 [INFO] [stdout] | [INFO] [stdout] 346 | drafts.sort_by(|a, b| b.last_modified.cmp(&a.last_modified)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 346 - drafts.sort_by(|a, b| b.last_modified.cmp(&a.last_modified)); [INFO] [stdout] 346 + drafts.sort_by_key(|b| std::cmp::Reverse(b.last_modified)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/operations_status.rs:97:21 [INFO] [stdout] | [INFO] [stdout] 97 | / if thread_id.is_none() { [INFO] [stdout] 98 | | if let Some(s) = tag_arr.get(1).and_then(|v| v.as_str()) { [INFO] [stdout] 99 | | thread_id = Some(s.to_string()); [INFO] [stdout] 100 | | } [INFO] [stdout] 101 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 95 ~ "q" [INFO] [stdout] 96 | // Quote tag - points to thread root (conversation) [INFO] [stdout] 97 ~ if thread_id.is_none() => { [INFO] [stdout] 98 | if let Some(s) = tag_arr.get(1).and_then(|v| v.as_str()) { [INFO] [stdout] 99 | thread_id = Some(s.to_string()); [INFO] [stdout] 100 | } [INFO] [stdout] 101 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/operations_status.rs:111:21 [INFO] [stdout] | [INFO] [stdout] 111 | / if project_coordinate.is_none() { [INFO] [stdout] 112 | | if let Some(s) = tag_arr.get(1).and_then(|v| v.as_str()) { [INFO] [stdout] 113 | | project_coordinate = Some(s.to_string()); [INFO] [stdout] 114 | | } [INFO] [stdout] 115 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 109 ~ "a" [INFO] [stdout] 110 | // Project coordinate: ["a", "31933::", "", ""] [INFO] [stdout] 111 ~ if project_coordinate.is_none() => { [INFO] [stdout] 112 | if let Some(s) = tag_arr.get(1).and_then(|v| v.as_str()) { [INFO] [stdout] 113 | project_coordinate = Some(s.to_string()); [INFO] [stdout] 114 | } [INFO] [stdout] 115 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/operations_status.rs:119:21 [INFO] [stdout] | [INFO] [stdout] 119 | / if llm_runtime_secs.is_none() { [INFO] [stdout] 120 | | if let Some(s) = tag_arr.get(1).and_then(|v| v.as_str()) { [INFO] [stdout] 121 | | llm_runtime_secs = s.parse::().ok(); [INFO] [stdout] 122 | | } else if let Some(n) = tag_arr.get(1).and_then(|v| v.as_u64()) { [INFO] [stdout] ... | [INFO] [stdout] 125 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 117 ~ "llm-runtime" [INFO] [stdout] 118 | // LLM runtime in seconds: ["llm-runtime", ""] [INFO] [stdout] 119 ~ if llm_runtime_secs.is_none() => { [INFO] [stdout] 120 | if let Some(s) = tag_arr.get(1).and_then(|v| v.as_str()) { [INFO] [stdout] ... [INFO] [stdout] 124 | } [INFO] [stdout] 125 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/operations_status.rs:198:21 [INFO] [stdout] | [INFO] [stdout] 198 | / if thread_id.is_none() { [INFO] [stdout] 199 | | if let Some(s) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] 200 | | thread_id = Some(s.to_string()); [INFO] [stdout] 201 | | } else if let Some(id_bytes) = tag.get(1).and_then(|t| t.variant().id()) { [INFO] [stdout] ... | [INFO] [stdout] 204 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 196 ~ "q" [INFO] [stdout] 197 | // Quote tag - points to thread root (conversation) [INFO] [stdout] 198 ~ if thread_id.is_none() => { [INFO] [stdout] 199 | if let Some(s) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] ... [INFO] [stdout] 203 | } [INFO] [stdout] 204 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/operations_status.rs:216:21 [INFO] [stdout] | [INFO] [stdout] 216 | / if project_coordinate.is_none() { [INFO] [stdout] 217 | | if let Some(s) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] 218 | | project_coordinate = Some(s.to_string()); [INFO] [stdout] 219 | | } [INFO] [stdout] 220 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 214 ~ "a" [INFO] [stdout] 215 | // Project coordinate [INFO] [stdout] 216 ~ if project_coordinate.is_none() => { [INFO] [stdout] 217 | if let Some(s) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] 218 | project_coordinate = Some(s.to_string()); [INFO] [stdout] 219 | } [INFO] [stdout] 220 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/operations_status.rs:224:21 [INFO] [stdout] | [INFO] [stdout] 224 | / if llm_runtime_secs.is_none() { [INFO] [stdout] 225 | | if let Some(s) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] 226 | | llm_runtime_secs = s.parse::().ok(); [INFO] [stdout] 227 | | } [INFO] [stdout] 228 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 222 ~ "llm-runtime" [INFO] [stdout] 223 | // LLM runtime in seconds: ["llm-runtime", ""] [INFO] [stdout] 224 ~ if llm_runtime_secs.is_none() => { [INFO] [stdout] 225 | if let Some(s) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] 226 | llm_runtime_secs = s.parse::().ok(); [INFO] [stdout] 227 | } [INFO] [stdout] 228 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/project_status.rs:112:21 [INFO] [stdout] | [INFO] [stdout] 112 | / if project_coordinate.is_none() && tag.len() > 1 { [INFO] [stdout] 113 | | project_coordinate = Some(tag[1].clone()); [INFO] [stdout] 114 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 111 ~ "a" [INFO] [stdout] 112 ~ if project_coordinate.is_none() && tag.len() > 1 => { [INFO] [stdout] 113 | project_coordinate = Some(tag[1].clone()); [INFO] [stdout] 114 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/project_status.rs:117:21 [INFO] [stdout] | [INFO] [stdout] 117 | / if tag.len() >= 3 { [INFO] [stdout] 118 | | // PM detection: check for "pm" marker in tag[3] (if present) [INFO] [stdout] 119 | | let is_pm = tag.len() >= 4 && tag[3] == "pm"; [INFO] [stdout] 120 | | let agent = ProjectAgent { [INFO] [stdout] ... | [INFO] [stdout] 127 | | agent_map.insert(tag[2].clone(), agent); [INFO] [stdout] 128 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 116 ~ "agent" [INFO] [stdout] 117 ~ if tag.len() >= 3 => { [INFO] [stdout] 118 | // PM detection: check for "pm" marker in tag[3] (if present) [INFO] [stdout] ... [INFO] [stdout] 127 | agent_map.insert(tag[2].clone(), agent); [INFO] [stdout] 128 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/project_status.rs:131:21 [INFO] [stdout] | [INFO] [stdout] 131 | / if tag.len() > 1 { [INFO] [stdout] 132 | | branches.push(tag[1].clone()); [INFO] [stdout] 133 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 130 ~ "branch" [INFO] [stdout] 131 ~ if tag.len() > 1 => { [INFO] [stdout] 132 | branches.push(tag[1].clone()); [INFO] [stdout] 133 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/project_status.rs:137:21 [INFO] [stdout] | [INFO] [stdout] 137 | / if tag.len() >= 2 { [INFO] [stdout] 138 | | all_models.push(tag[1].clone()); [INFO] [stdout] 139 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 135 ~ "model" [INFO] [stdout] 136 | // Collect model name (tag[1]) regardless of agent assignments [INFO] [stdout] 137 ~ if tag.len() >= 2 => { [INFO] [stdout] 138 | all_models.push(tag[1].clone()); [INFO] [stdout] 139 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/project_status.rs:143:21 [INFO] [stdout] | [INFO] [stdout] 143 | / if tag.len() >= 2 { [INFO] [stdout] 144 | | all_tools.push(tag[1].clone()); [INFO] [stdout] 145 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 141 ~ "tool" [INFO] [stdout] 142 | // Collect tool name (tag[1]) regardless of agent assignments [INFO] [stdout] 143 ~ if tag.len() >= 2 => { [INFO] [stdout] 144 | all_tools.push(tag[1].clone()); [INFO] [stdout] 145 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/project_status.rs:165:21 [INFO] [stdout] | [INFO] [stdout] 165 | / if tag.len() >= 3 { [INFO] [stdout] 166 | | let model = &tag[1]; [INFO] [stdout] 167 | | for agent_name in &tag[2..] { [INFO] [stdout] 168 | | if let Some(agent) = agent_map.get_mut(agent_name) { [INFO] [stdout] ... | [INFO] [stdout] 172 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 164 ~ "model" [INFO] [stdout] 165 ~ if tag.len() >= 3 => { [INFO] [stdout] 166 | let model = &tag[1]; [INFO] [stdout] ... [INFO] [stdout] 171 | } [INFO] [stdout] 172 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/project_status.rs:175:21 [INFO] [stdout] | [INFO] [stdout] 175 | / if tag.len() >= 3 { [INFO] [stdout] 176 | | let tool = &tag[1]; [INFO] [stdout] 177 | | for agent_name in &tag[2..] { [INFO] [stdout] 178 | | if let Some(agent) = agent_map.get_mut(agent_name) { [INFO] [stdout] ... | [INFO] [stdout] 182 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 174 ~ "tool" [INFO] [stdout] 175 ~ if tag.len() >= 3 => { [INFO] [stdout] 176 | let tool = &tag[1]; [INFO] [stdout] ... [INFO] [stdout] 181 | } [INFO] [stdout] 182 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/operations_status.rs:97:21 [INFO] [stdout] | [INFO] [stdout] 97 | / if thread_id.is_none() { [INFO] [stdout] 98 | | if let Some(s) = tag_arr.get(1).and_then(|v| v.as_str()) { [INFO] [stdout] 99 | | thread_id = Some(s.to_string()); [INFO] [stdout] 100 | | } [INFO] [stdout] 101 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 95 ~ "q" [INFO] [stdout] 96 | // Quote tag - points to thread root (conversation) [INFO] [stdout] 97 ~ if thread_id.is_none() => { [INFO] [stdout] 98 | if let Some(s) = tag_arr.get(1).and_then(|v| v.as_str()) { [INFO] [stdout] 99 | thread_id = Some(s.to_string()); [INFO] [stdout] 100 | } [INFO] [stdout] 101 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/operations_status.rs:111:21 [INFO] [stdout] | [INFO] [stdout] 111 | / if project_coordinate.is_none() { [INFO] [stdout] 112 | | if let Some(s) = tag_arr.get(1).and_then(|v| v.as_str()) { [INFO] [stdout] 113 | | project_coordinate = Some(s.to_string()); [INFO] [stdout] 114 | | } [INFO] [stdout] 115 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 109 ~ "a" [INFO] [stdout] 110 | // Project coordinate: ["a", "31933::", "", ""] [INFO] [stdout] 111 ~ if project_coordinate.is_none() => { [INFO] [stdout] 112 | if let Some(s) = tag_arr.get(1).and_then(|v| v.as_str()) { [INFO] [stdout] 113 | project_coordinate = Some(s.to_string()); [INFO] [stdout] 114 | } [INFO] [stdout] 115 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/operations_status.rs:119:21 [INFO] [stdout] | [INFO] [stdout] 119 | / if llm_runtime_secs.is_none() { [INFO] [stdout] 120 | | if let Some(s) = tag_arr.get(1).and_then(|v| v.as_str()) { [INFO] [stdout] 121 | | llm_runtime_secs = s.parse::().ok(); [INFO] [stdout] 122 | | } else if let Some(n) = tag_arr.get(1).and_then(|v| v.as_u64()) { [INFO] [stdout] ... | [INFO] [stdout] 125 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 117 ~ "llm-runtime" [INFO] [stdout] 118 | // LLM runtime in seconds: ["llm-runtime", ""] [INFO] [stdout] 119 ~ if llm_runtime_secs.is_none() => { [INFO] [stdout] 120 | if let Some(s) = tag_arr.get(1).and_then(|v| v.as_str()) { [INFO] [stdout] ... [INFO] [stdout] 124 | } [INFO] [stdout] 125 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/operations_status.rs:198:21 [INFO] [stdout] | [INFO] [stdout] 198 | / if thread_id.is_none() { [INFO] [stdout] 199 | | if let Some(s) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] 200 | | thread_id = Some(s.to_string()); [INFO] [stdout] 201 | | } else if let Some(id_bytes) = tag.get(1).and_then(|t| t.variant().id()) { [INFO] [stdout] ... | [INFO] [stdout] 204 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 196 ~ "q" [INFO] [stdout] 197 | // Quote tag - points to thread root (conversation) [INFO] [stdout] 198 ~ if thread_id.is_none() => { [INFO] [stdout] 199 | if let Some(s) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] ... [INFO] [stdout] 203 | } [INFO] [stdout] 204 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/operations_status.rs:216:21 [INFO] [stdout] | [INFO] [stdout] 216 | / if project_coordinate.is_none() { [INFO] [stdout] 217 | | if let Some(s) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] 218 | | project_coordinate = Some(s.to_string()); [INFO] [stdout] 219 | | } [INFO] [stdout] 220 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 214 ~ "a" [INFO] [stdout] 215 | // Project coordinate [INFO] [stdout] 216 ~ if project_coordinate.is_none() => { [INFO] [stdout] 217 | if let Some(s) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] 218 | project_coordinate = Some(s.to_string()); [INFO] [stdout] 219 | } [INFO] [stdout] 220 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/operations_status.rs:224:21 [INFO] [stdout] | [INFO] [stdout] 224 | / if llm_runtime_secs.is_none() { [INFO] [stdout] 225 | | if let Some(s) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] 226 | | llm_runtime_secs = s.parse::().ok(); [INFO] [stdout] 227 | | } [INFO] [stdout] 228 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 222 ~ "llm-runtime" [INFO] [stdout] 223 | // LLM runtime in seconds: ["llm-runtime", ""] [INFO] [stdout] 224 ~ if llm_runtime_secs.is_none() => { [INFO] [stdout] 225 | if let Some(s) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] 226 | llm_runtime_secs = s.parse::().ok(); [INFO] [stdout] 227 | } [INFO] [stdout] 228 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/thread.rs:67:21 [INFO] [stdout] | [INFO] [stdout] 67 | / if tag.get(1).and_then(|t| t.variant().str()).is_some() { [INFO] [stdout] 68 | | has_a_tag = true; [INFO] [stdout] 69 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 65 ~ Some("a") [INFO] [stdout] 66 | // Validate project_id exists [INFO] [stdout] 67 ~ if tag.get(1).and_then(|t| t.variant().str()).is_some() => { [INFO] [stdout] 68 | has_a_tag = true; [INFO] [stdout] 69 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-core/src/nostr/bunker.rs:244:1 [INFO] [stdout] | [INFO] [stdout] 244 | / async fn serve_loop( [INFO] [stdout] 245 | | keys: Keys, [INFO] [stdout] 246 | | relay_url: RelayUrl, [INFO] [stdout] 247 | | secret: String, [INFO] [stdout] ... | [INFO] [stdout] 252 | | request_tx: std::sync::mpsc::Sender, [INFO] [stdout] 253 | | ) -> Result<(), String> { [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-core/src/nostr/bunker.rs:335:1 [INFO] [stdout] | [INFO] [stdout] 335 | / async fn handle_nostr_connect_event( [INFO] [stdout] 336 | | keys: &Keys, [INFO] [stdout] 337 | | secret: &str, [INFO] [stdout] 338 | | event: &Event, [INFO] [stdout] ... | [INFO] [stdout] 343 | | request_tx: &std::sync::mpsc::Sender, [INFO] [stdout] 344 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/project_status.rs:112:21 [INFO] [stdout] | [INFO] [stdout] 112 | / if project_coordinate.is_none() && tag.len() > 1 { [INFO] [stdout] 113 | | project_coordinate = Some(tag[1].clone()); [INFO] [stdout] 114 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 111 ~ "a" [INFO] [stdout] 112 ~ if project_coordinate.is_none() && tag.len() > 1 => { [INFO] [stdout] 113 | project_coordinate = Some(tag[1].clone()); [INFO] [stdout] 114 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/project_status.rs:117:21 [INFO] [stdout] | [INFO] [stdout] 117 | / if tag.len() >= 3 { [INFO] [stdout] 118 | | // PM detection: check for "pm" marker in tag[3] (if present) [INFO] [stdout] 119 | | let is_pm = tag.len() >= 4 && tag[3] == "pm"; [INFO] [stdout] 120 | | let agent = ProjectAgent { [INFO] [stdout] ... | [INFO] [stdout] 127 | | agent_map.insert(tag[2].clone(), agent); [INFO] [stdout] 128 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 116 ~ "agent" [INFO] [stdout] 117 ~ if tag.len() >= 3 => { [INFO] [stdout] 118 | // PM detection: check for "pm" marker in tag[3] (if present) [INFO] [stdout] ... [INFO] [stdout] 127 | agent_map.insert(tag[2].clone(), agent); [INFO] [stdout] 128 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/project_status.rs:131:21 [INFO] [stdout] | [INFO] [stdout] 131 | / if tag.len() > 1 { [INFO] [stdout] 132 | | branches.push(tag[1].clone()); [INFO] [stdout] 133 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 130 ~ "branch" [INFO] [stdout] 131 ~ if tag.len() > 1 => { [INFO] [stdout] 132 | branches.push(tag[1].clone()); [INFO] [stdout] 133 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/project_status.rs:137:21 [INFO] [stdout] | [INFO] [stdout] 137 | / if tag.len() >= 2 { [INFO] [stdout] 138 | | all_models.push(tag[1].clone()); [INFO] [stdout] 139 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 135 ~ "model" [INFO] [stdout] 136 | // Collect model name (tag[1]) regardless of agent assignments [INFO] [stdout] 137 ~ if tag.len() >= 2 => { [INFO] [stdout] 138 | all_models.push(tag[1].clone()); [INFO] [stdout] 139 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/project_status.rs:143:21 [INFO] [stdout] | [INFO] [stdout] 143 | / if tag.len() >= 2 { [INFO] [stdout] 144 | | all_tools.push(tag[1].clone()); [INFO] [stdout] 145 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 141 ~ "tool" [INFO] [stdout] 142 | // Collect tool name (tag[1]) regardless of agent assignments [INFO] [stdout] 143 ~ if tag.len() >= 2 => { [INFO] [stdout] 144 | all_tools.push(tag[1].clone()); [INFO] [stdout] 145 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/project_status.rs:165:21 [INFO] [stdout] | [INFO] [stdout] 165 | / if tag.len() >= 3 { [INFO] [stdout] 166 | | let model = &tag[1]; [INFO] [stdout] 167 | | for agent_name in &tag[2..] { [INFO] [stdout] 168 | | if let Some(agent) = agent_map.get_mut(agent_name) { [INFO] [stdout] ... | [INFO] [stdout] 172 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 164 ~ "model" [INFO] [stdout] 165 ~ if tag.len() >= 3 => { [INFO] [stdout] 166 | let model = &tag[1]; [INFO] [stdout] ... [INFO] [stdout] 171 | } [INFO] [stdout] 172 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/project_status.rs:175:21 [INFO] [stdout] | [INFO] [stdout] 175 | / if tag.len() >= 3 { [INFO] [stdout] 176 | | let tool = &tag[1]; [INFO] [stdout] 177 | | for agent_name in &tag[2..] { [INFO] [stdout] 178 | | if let Some(agent) = agent_map.get_mut(agent_name) { [INFO] [stdout] ... | [INFO] [stdout] 182 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 174 ~ "tool" [INFO] [stdout] 175 ~ if tag.len() >= 3 => { [INFO] [stdout] 176 | let tool = &tag[1]; [INFO] [stdout] ... [INFO] [stdout] 181 | } [INFO] [stdout] 182 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> crates/tenex-core/src/nostr/worker.rs:2099:44 [INFO] [stdout] | [INFO] [stdout] 2099 | ... if stream_events_seen % STREAM_REASSEMBLY_PRUNE_EVERY == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `stream_events_seen.is_multiple_of(STREAM_REASSEMBLY_PRUNE_EVERY)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/models/thread.rs:67:21 [INFO] [stdout] | [INFO] [stdout] 67 | / if tag.get(1).and_then(|t| t.variant().str()).is_some() { [INFO] [stdout] 68 | | has_a_tag = true; [INFO] [stdout] 69 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 65 ~ Some("a") [INFO] [stdout] 66 | // Validate project_id exists [INFO] [stdout] 67 ~ if tag.get(1).and_then(|t| t.variant().str()).is_some() => { [INFO] [stdout] 68 | has_a_tag = true; [INFO] [stdout] 69 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-core/src/nostr/bunker.rs:244:1 [INFO] [stdout] | [INFO] [stdout] 244 | / async fn serve_loop( [INFO] [stdout] 245 | | keys: Keys, [INFO] [stdout] 246 | | relay_url: RelayUrl, [INFO] [stdout] 247 | | secret: String, [INFO] [stdout] ... | [INFO] [stdout] 252 | | request_tx: std::sync::mpsc::Sender, [INFO] [stdout] 253 | | ) -> Result<(), String> { [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-core/src/nostr/bunker.rs:335:1 [INFO] [stdout] | [INFO] [stdout] 335 | / async fn handle_nostr_connect_event( [INFO] [stdout] 336 | | keys: &Keys, [INFO] [stdout] 337 | | secret: &str, [INFO] [stdout] 338 | | event: &Event, [INFO] [stdout] ... | [INFO] [stdout] 343 | | request_tx: &std::sync::mpsc::Sender, [INFO] [stdout] 344 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> crates/tenex-core/src/nostr/worker.rs:2099:44 [INFO] [stdout] | [INFO] [stdout] 2099 | ... if stream_events_seen % STREAM_REASSEMBLY_PRUNE_EVERY == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `stream_events_seen.is_multiple_of(STREAM_REASSEMBLY_PRUNE_EVERY)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/stats.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | kinds.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 56 - kinds.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 56 + kinds.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/stats.rs:145:5 [INFO] [stdout] | [INFO] [stdout] 145 | results.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 145 - results.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 145 + results.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/stats.rs:308:9 [INFO] [stdout] | [INFO] [stdout] 308 | subs.sort_by(|a, b| b.1.events_received.cmp(&a.1.events_received)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 308 - subs.sort_by(|a, b| b.1.events_received.cmp(&a.1.events_received)); [INFO] [stdout] 308 + subs.sort_by_key(|b| std::cmp::Reverse(b.1.events_received)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:411:13 [INFO] [stdout] | [INFO] [stdout] 411 | threads.sort_by(|a, b| b.last_activity.cmp(&a.last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 411 - threads.sort_by(|a, b| b.last_activity.cmp(&a.last_activity)); [INFO] [stdout] 411 + threads.sort_by_key(|b| std::cmp::Reverse(b.last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:439:13 [INFO] [stdout] | [INFO] [stdout] 439 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 439 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 439 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:599:13 [INFO] [stdout] | [INFO] [stdout] 599 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 599 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 599 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:659:17 [INFO] [stdout] | [INFO] [stdout] 659 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 659 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 659 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:1233:13 [INFO] [stdout] | [INFO] [stdout] 1233 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1233 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 1233 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:1306:33 [INFO] [stdout] | [INFO] [stdout] 1306 | let should_update = self [INFO] [stdout] | _________________________________^ [INFO] [stdout] 1307 | | .bookmarks [INFO] [stdout] 1308 | | .get(&bookmark_list.pubkey) [INFO] [stdout] 1309 | | .map_or(true, |existing| { [INFO] [stdout] 1310 | | bookmark_list.last_updated > existing.last_updated [INFO] [stdout] 1311 | | }); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 1309 - .map_or(true, |existing| { [INFO] [stdout] 1309 + .is_none_or(|existing| { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:1949:21 [INFO] [stdout] | [INFO] [stdout] 1949 | / threads [INFO] [stdout] 1950 | | .sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | |__________________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1950 - .sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 1950 + .sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/stats.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | kinds.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 56 - kinds.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 56 + kinds.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/stats.rs:145:5 [INFO] [stdout] | [INFO] [stdout] 145 | results.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 145 - results.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 145 + results.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:2223:17 [INFO] [stdout] | [INFO] [stdout] 2223 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 2223 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 2223 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/stats.rs:308:9 [INFO] [stdout] | [INFO] [stdout] 308 | subs.sort_by(|a, b| b.1.events_received.cmp(&a.1.events_received)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 308 - subs.sort_by(|a, b| b.1.events_received.cmp(&a.1.events_received)); [INFO] [stdout] 308 + subs.sort_by_key(|b| std::cmp::Reverse(b.1.events_received)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:2766:9 [INFO] [stdout] | [INFO] [stdout] 2766 | results.sort_by(|a, b| b.2.cmp(&a.2)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 2766 - results.sort_by(|a, b| b.2.cmp(&a.2)); [INFO] [stdout] 2766 + results.sort_by_key(|b| std::cmp::Reverse(b.2)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:2886:9 [INFO] [stdout] | [INFO] [stdout] 2886 | results.sort_by(|a, b| b.2.cmp(&a.2)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 2886 - results.sort_by(|a, b| b.2.cmp(&a.2)); [INFO] [stdout] 2886 + results.sort_by_key(|b| std::cmp::Reverse(b.2)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:411:13 [INFO] [stdout] | [INFO] [stdout] 411 | threads.sort_by(|a, b| b.last_activity.cmp(&a.last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 411 - threads.sort_by(|a, b| b.last_activity.cmp(&a.last_activity)); [INFO] [stdout] 411 + threads.sort_by_key(|b| std::cmp::Reverse(b.last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:439:13 [INFO] [stdout] | [INFO] [stdout] 439 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 439 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 439 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:599:13 [INFO] [stdout] | [INFO] [stdout] 599 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 599 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 599 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:659:17 [INFO] [stdout] | [INFO] [stdout] 659 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 659 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 659 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:1233:13 [INFO] [stdout] | [INFO] [stdout] 1233 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1233 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 1233 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:1306:33 [INFO] [stdout] | [INFO] [stdout] 1306 | let should_update = self [INFO] [stdout] | _________________________________^ [INFO] [stdout] 1307 | | .bookmarks [INFO] [stdout] 1308 | | .get(&bookmark_list.pubkey) [INFO] [stdout] 1309 | | .map_or(true, |existing| { [INFO] [stdout] 1310 | | bookmark_list.last_updated > existing.last_updated [INFO] [stdout] 1311 | | }); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 1309 - .map_or(true, |existing| { [INFO] [stdout] 1309 + .is_none_or(|existing| { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:1949:21 [INFO] [stdout] | [INFO] [stdout] 1949 | / threads [INFO] [stdout] 1950 | | .sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | |__________________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1950 - .sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 1950 + .sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:2223:17 [INFO] [stdout] | [INFO] [stdout] 2223 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 2223 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 2223 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:2766:9 [INFO] [stdout] | [INFO] [stdout] 2766 | results.sort_by(|a, b| b.2.cmp(&a.2)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 2766 - results.sort_by(|a, b| b.2.cmp(&a.2)); [INFO] [stdout] 2766 + results.sort_by_key(|b| std::cmp::Reverse(b.2)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/app_data_store.rs:2886:9 [INFO] [stdout] | [INFO] [stdout] 2886 | results.sort_by(|a, b| b.2.cmp(&a.2)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 2886 - results.sort_by(|a, b| b.2.cmp(&a.2)); [INFO] [stdout] 2886 + results.sort_by_key(|b| std::cmp::Reverse(b.2)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/content_store.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | defs.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 48 - defs.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 48 + defs.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/content_store.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | teams.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 58 - teams.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 58 + teams.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/content_store.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | tools.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 68 - tools.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 68 + tools.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/store/events.rs:212:17 [INFO] [stdout] | [INFO] [stdout] 212 | / if trace_context.is_none() { [INFO] [stdout] 213 | | if let Some(val) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] 214 | | trace_context = Some(val.to_string()); [INFO] [stdout] 215 | | } [INFO] [stdout] 216 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 211 ~ Some("trace_context") [INFO] [stdout] 212 ~ if trace_context.is_none() => { [INFO] [stdout] 213 | if let Some(val) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] 214 | trace_context = Some(val.to_string()); [INFO] [stdout] 215 | } [INFO] [stdout] 216 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/inbox_store.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | self.items.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 75 - self.items.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 75 + self.items.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/reports_store.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | reports.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 41 - reports.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 41 + reports.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/reports_store.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | reports.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 51 - reports.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 51 + reports.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/reports_store.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | versions.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 100 - versions.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 100 + versions.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/reports_store.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | threads.sort_by(|a, b| b.last_activity.cmp(&a.last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 114 - threads.sort_by(|a, b| b.last_activity.cmp(&a.last_activity)); [INFO] [stdout] 114 + threads.sort_by_key(|b| std::cmp::Reverse(b.last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/runtime_hierarchy.rs:509:9 [INFO] [stdout] | [INFO] [stdout] 509 | runtimes.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 509 - runtimes.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 509 + runtimes.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/views.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | projects.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 52 - projects.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 52 + projects.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/views.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 166 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 166 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 166 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/views.rs:205:5 [INFO] [stdout] | [INFO] [stdout] 205 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 205 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 205 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/views.rs:268:5 [INFO] [stdout] | [INFO] [stdout] 268 | messages.sort_by(|a, b| a.created_at.cmp(&b.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 268 - messages.sort_by(|a, b| a.created_at.cmp(&b.created_at)); [INFO] [stdout] 268 + messages.sort_by_key(|a| a.created_at); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/content_store.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | defs.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 48 - defs.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 48 + defs.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/content_store.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | teams.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 58 - teams.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 58 + teams.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/content_store.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | tools.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 68 - tools.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 68 + tools.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-core/src/store/events.rs:212:17 [INFO] [stdout] | [INFO] [stdout] 212 | / if trace_context.is_none() { [INFO] [stdout] 213 | | if let Some(val) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] 214 | | trace_context = Some(val.to_string()); [INFO] [stdout] 215 | | } [INFO] [stdout] 216 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 211 ~ Some("trace_context") [INFO] [stdout] 212 ~ if trace_context.is_none() => { [INFO] [stdout] 213 | if let Some(val) = tag.get(1).and_then(|t| t.variant().str()) { [INFO] [stdout] 214 | trace_context = Some(val.to_string()); [INFO] [stdout] 215 | } [INFO] [stdout] 216 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/inbox_store.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | self.items.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 75 - self.items.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 75 + self.items.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/reports_store.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | reports.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 41 - reports.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 41 + reports.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/reports_store.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | reports.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 51 - reports.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 51 + reports.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/reports_store.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | versions.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 100 - versions.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 100 + versions.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/reports_store.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | threads.sort_by(|a, b| b.last_activity.cmp(&a.last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 114 - threads.sort_by(|a, b| b.last_activity.cmp(&a.last_activity)); [INFO] [stdout] 114 + threads.sort_by_key(|b| std::cmp::Reverse(b.last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/runtime_hierarchy.rs:509:9 [INFO] [stdout] | [INFO] [stdout] 509 | runtimes.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 509 - runtimes.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 509 + runtimes.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/views.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | projects.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 52 - projects.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 52 + projects.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/views.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 166 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 166 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 166 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/views.rs:205:5 [INFO] [stdout] | [INFO] [stdout] 205 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 205 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 205 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-core/src/store/views.rs:268:5 [INFO] [stdout] | [INFO] [stdout] 268 | messages.sort_by(|a, b| a.created_at.cmp(&b.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 268 - messages.sort_by(|a, b| a.created_at.cmp(&b.created_at)); [INFO] [stdout] 268 + messages.sort_by_key(|a| a.created_at); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking tenex-tui v0.1.0 (/opt/rustwide/workdir/crates/tenex-tui) [INFO] [stderr] Checking tenex-cli v0.1.0 (/opt/rustwide/workdir/crates/tenex-cli) [INFO] [stderr] Checking tenex-repl v0.1.0 (/opt/rustwide/workdir/crates/tenex-repl) [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-cli/src/cli/daemon.rs:1473:13 [INFO] [stdout] | [INFO] [stdout] 1473 | entries.sort_by(|a, b| b.completed_at_ms.cmp(&a.completed_at_ms)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1473 - entries.sort_by(|a, b| b.completed_at_ms.cmp(&a.completed_at_ms)); [INFO] [stdout] 1473 + entries.sort_by_key(|b| std::cmp::Reverse(b.completed_at_ms)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-repl/src/commands.rs:480:5 [INFO] [stdout] | [INFO] [stdout] 480 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 480 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 480 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-cli/src/cli/daemon.rs:1473:13 [INFO] [stdout] | [INFO] [stdout] 1473 | entries.sort_by(|a, b| b.completed_at_ms.cmp(&a.completed_at_ms)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1473 - entries.sort_by(|a, b| b.completed_at_ms.cmp(&a.completed_at_ms)); [INFO] [stdout] 1473 + entries.sort_by_key(|b| std::cmp::Reverse(b.completed_at_ms)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> crates/tenex-repl/src/commands.rs:1510:1 [INFO] [stdout] | [INFO] [stdout] 1510 | / pub(crate) fn handle_clipboard_paste( [INFO] [stdout] 1511 | | editor: &mut LineEditor, [INFO] [stdout] 1512 | | keys: &Keys, [INFO] [stdout] 1513 | | upload_tx: tokio::sync::mpsc::Sender, [INFO] [stdout] ... | [INFO] [stdout] 1521 | | nudge_skill_panel: &NudgeSkillPanel, [INFO] [stdout] 1522 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-repl/src/completion.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 56 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 56 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-repl/src/completion.rs:264:5 [INFO] [stdout] | [INFO] [stdout] 264 | items.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 264 - items.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] 264 + items.sort_by_key(|b| std::cmp::Reverse(b.0)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-repl/src/completion.rs:389:25 [INFO] [stdout] | [INFO] [stdout] 389 | items.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 389 - items.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] 389 + items.sort_by_key(|b| std::cmp::Reverse(b.0)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-repl/src/completion.rs:540:33 [INFO] [stdout] | [INFO] [stdout] 540 | ... items.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 540 - items.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] 540 + items.sort_by_key(|b| std::cmp::Reverse(b.0)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> crates/tenex-repl/src/completion.rs:688:48 [INFO] [stdout] | [INFO] [stdout] 688 | ... let agent_filter = first[1..].to_lowercase(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> crates/tenex-repl/src/completion.rs:686:32 [INFO] [stdout] | [INFO] [stdout] 686 | } else if first.starts_with('@') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 686 ~ } else if let Some() = first.strip_prefix('@') { [INFO] [stdout] 687 | // @agent_filter — show agent picker [INFO] [stdout] 688 ~ let agent_filter = .to_lowercase(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/tenex-repl/src/completion.rs:812:82 [INFO] [stdout] | [INFO] [stdout] 812 | ... .filter(|(cmd, _)| filter.is_empty() || cmd.contains(&filter.as_str())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `filter.as_str()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual checked division [INFO] [stdout] --> crates/tenex-repl/src/render.rs:267:8 [INFO] [stdout] | [INFO] [stdout] 267 | if width == 0 { [INFO] [stdout] | ^^^^^^^^^^ check performed here [INFO] [stdout] ... [INFO] [stdout] 270 | visible_len.saturating_sub(1) / width + 1 [INFO] [stdout] | ------------------------------------- division performed here [INFO] [stdout] | [INFO] [stdout] = help: consider using `checked_div` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_checked_ops [INFO] [stdout] = note: `#[warn(clippy::manual_checked_ops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-repl/src/commands.rs:480:5 [INFO] [stdout] | [INFO] [stdout] 480 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 480 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 480 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/tenex-repl/src/render.rs:414:1 [INFO] [stdout] | [INFO] [stdout] 414 | / pub(crate) fn redraw_input( [INFO] [stdout] 415 | | stdout: &mut Stdout, [INFO] [stdout] 416 | | state: &ReplState, [INFO] [stdout] 417 | | runtime: &CoreRuntime, [INFO] [stdout] ... | [INFO] [stdout] 423 | | nudge_skill_panel: &NudgeSkillPanel, [INFO] [stdout] 424 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `fi` is used to index `filtered` [INFO] [stdout] --> crates/tenex-repl/src/render.rs:945:19 [INFO] [stdout] | [INFO] [stdout] 945 | for fi in panel.scroll_offset..visible_end { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 945 - for fi in panel.scroll_offset..visible_end { [INFO] [stdout] 945 + for (fi, ) in filtered.iter().enumerate().take(visible_end).skip(panel.scroll_offset) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded use of `concat!` macro [INFO] [stdout] --> crates/tenex-repl/src/render.rs:962:26 [INFO] [stdout] | [INFO] [stdout] 962 | (concat!("(*) "), 4) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace with: `"(*) "` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_concat [INFO] [stdout] = note: `#[warn(clippy::useless_concat)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `fi` is used to index `filtered` [INFO] [stdout] --> crates/tenex-repl/src/render.rs:1057:19 [INFO] [stdout] | [INFO] [stdout] 1057 | for fi in nudge_skill_panel.scroll_offset..visible_end { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 1057 - for fi in nudge_skill_panel.scroll_offset..visible_end { [INFO] [stdout] 1057 + for (fi, ) in filtered.iter().enumerate().take(visible_end).skip(nudge_skill_panel.scroll_offset) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> crates/tenex-repl/src/commands.rs:1510:1 [INFO] [stdout] | [INFO] [stdout] 1510 | / pub(crate) fn handle_clipboard_paste( [INFO] [stdout] 1511 | | editor: &mut LineEditor, [INFO] [stdout] 1512 | | keys: &Keys, [INFO] [stdout] 1513 | | upload_tx: tokio::sync::mpsc::Sender, [INFO] [stdout] ... | [INFO] [stdout] 1521 | | nudge_skill_panel: &NudgeSkillPanel, [INFO] [stdout] 1522 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> crates/tenex-repl/src/render.rs:1313:1 [INFO] [stdout] | [INFO] [stdout] 1313 | / pub(crate) fn apply_clear_screen( [INFO] [stdout] 1314 | | stdout: &mut Stdout, [INFO] [stdout] 1315 | | lines: &[String], [INFO] [stdout] 1316 | | state: &mut ReplState, [INFO] [stdout] ... | [INFO] [stdout] 1323 | | nudge_skill_panel: &NudgeSkillPanel, [INFO] [stdout] 1324 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-repl/src/completion.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 56 - threads.sort_by(|a, b| b.effective_last_activity.cmp(&a.effective_last_activity)); [INFO] [stdout] 56 + threads.sort_by_key(|b| std::cmp::Reverse(b.effective_last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> crates/tenex-repl/src/render.rs:1359:1 [INFO] [stdout] | [INFO] [stdout] 1359 | / pub(crate) fn print_above_input( [INFO] [stdout] 1360 | | stdout: &mut Stdout, [INFO] [stdout] 1361 | | text: &str, [INFO] [stdout] 1362 | | state: &ReplState, [INFO] [stdout] ... | [INFO] [stdout] 1369 | | nudge_skill_panel: &NudgeSkillPanel, [INFO] [stdout] 1370 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-repl/src/completion.rs:264:5 [INFO] [stdout] | [INFO] [stdout] 264 | items.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 264 - items.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] 264 + items.sort_by_key(|b| std::cmp::Reverse(b.0)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-repl/src/completion.rs:389:25 [INFO] [stdout] | [INFO] [stdout] 389 | items.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 389 - items.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] 389 + items.sort_by_key(|b| std::cmp::Reverse(b.0)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-repl/src/completion.rs:540:33 [INFO] [stdout] | [INFO] [stdout] 540 | ... items.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 540 - items.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] 540 + items.sort_by_key(|b| std::cmp::Reverse(b.0)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> crates/tenex-repl/src/completion.rs:688:48 [INFO] [stdout] | [INFO] [stdout] 688 | ... let agent_filter = first[1..].to_lowercase(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> crates/tenex-repl/src/completion.rs:686:32 [INFO] [stdout] | [INFO] [stdout] 686 | } else if first.starts_with('@') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 686 ~ } else if let Some() = first.strip_prefix('@') { [INFO] [stdout] 687 | // @agent_filter — show agent picker [INFO] [stdout] 688 ~ let agent_filter = .to_lowercase(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/tenex-repl/src/completion.rs:812:82 [INFO] [stdout] | [INFO] [stdout] 812 | ... .filter(|(cmd, _)| filter.is_empty() || cmd.contains(&filter.as_str())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `filter.as_str()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-repl/src/main.rs:507:33 [INFO] [stdout] | [INFO] [stdout] 507 | / ... if panel.resolve_selected_agent(runtime) { [INFO] [stdout] 508 | | ... panel.rebuild_origin_command(); [INFO] [stdout] 509 | | ... panel.switch_to_tools(); [INFO] [stdout] 510 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 506 ~ KeyCode::Enter [INFO] [stdout] 507 ~ if panel.resolve_selected_agent(runtime) => { [INFO] [stdout] 508 | panel.rebuild_origin_command(); [INFO] [stdout] 509 | panel.switch_to_tools(); [INFO] [stdout] 510 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-repl/src/main.rs:570:33 [INFO] [stdout] | [INFO] [stdout] 570 | / ... if panel.select_current_model() { [INFO] [stdout] 571 | | ... if panel.quick_save { [INFO] [stdout] 572 | | ... let msg = panel.save_model_only(runtime); [INFO] [stdout] 573 | | ... panel.deactivate(); [INFO] [stdout] ... | [INFO] [stdout] 580 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 569 ~ KeyCode::Enter | KeyCode::Char(' ') [INFO] [stdout] 570 ~ if panel.select_current_model() => { [INFO] [stdout] 571 | if panel.quick_save { [INFO] [stdout] ... [INFO] [stdout] 579 | } [INFO] [stdout] 580 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-repl/src/main.rs:782:29 [INFO] [stdout] | [INFO] [stdout] 782 | ... if completion.visible { completion.select_prev(); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 781 ~ (KeyCode::Up, _) [INFO] [stdout] 782 ~ if completion.visible => { completion.select_prev(); } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-repl/src/main.rs:785:29 [INFO] [stdout] | [INFO] [stdout] 785 | ... if completion.visible { completion.select_next(); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 784 ~ (KeyCode::Down, _) [INFO] [stdout] 785 ~ if completion.visible => { completion.select_next(); } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-repl/src/main.rs:788:29 [INFO] [stdout] | [INFO] [stdout] 788 | ... if completion.visible { completion.select_next(); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 787 ~ (KeyCode::Tab, _) [INFO] [stdout] 788 ~ if completion.visible => { completion.select_next(); } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-repl/src/main.rs:791:29 [INFO] [stdout] | [INFO] [stdout] 791 | ... if completion.visible { completion.select_prev(); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 790 ~ (KeyCode::BackTab, _) [INFO] [stdout] 791 ~ if completion.visible => { completion.select_prev(); } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-repl/src/main.rs:1011:25 [INFO] [stdout] | [INFO] [stdout] 1011 | / ... if completion.visible && !completion.items.is_empty() { [INFO] [stdout] 1012 | | ... completion.select_prev(); [INFO] [stdout] 1013 | | ... editor.set_buffer(&completion.items[completion.selected].fill); [INFO] [stdout] 1014 | | ... redraw_input(&mut stdout, state, runtime, &editor, &mut completion, &panel, &status_nav, &stats_panel, &nudge_skill_pa... [INFO] [stdout] 1015 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1010 ~ (KeyCode::BackTab, _) [INFO] [stdout] 1011 ~ if completion.visible && !completion.items.is_empty() => { [INFO] [stdout] 1012 | completion.select_prev(); [INFO] [stdout] 1013 | editor.set_buffer(&completion.items[completion.selected].fill); [INFO] [stdout] 1014 | redraw_input(&mut stdout, state, runtime, &editor, &mut completion, &panel, &status_nav, &stats_panel, &nudge_skill_panel); [INFO] [stdout] 1015 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> crates/tenex-repl/src/main.rs:920:54 [INFO] [stdout] | [INFO] [stdout] 920 | ... format!("/agent {}", line[1..].trim()) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> crates/tenex-repl/src/main.rs:919:40 [INFO] [stdout] | [INFO] [stdout] 919 | ... let line = if line.starts_with('@') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 919 ~ let line = if let Some() = line.strip_prefix('@') { [INFO] [stdout] 920 ~ format!("/agent {}", .trim()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/tenex-repl/src/main.rs:989:25 [INFO] [stdout] | [INFO] [stdout] 989 | / if !completion.visible { [INFO] [stdout] 990 | | if editor.buffer.starts_with('/') || editor.buffer.starts_with('@') { [INFO] [stdout] 991 | | completion.pre_completion_buffer = Some(editor.buffer.clone()); [INFO] [stdout] 992 | | completion.update_from_buffer(&editor.buffer, state, runtime); [INFO] [stdout] 993 | | } [INFO] [stdout] 994 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 989 ~ if !completion.visible [INFO] [stdout] 990 ~ && (editor.buffer.starts_with('/') || editor.buffer.starts_with('@')) { [INFO] [stdout] 991 | completion.pre_completion_buffer = Some(editor.buffer.clone()); [INFO] [stdout] 992 | completion.update_from_buffer(&editor.buffer, state, runtime); [INFO] [stdout] 993 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> crates/tenex-repl/src/main.rs:1467:1 [INFO] [stdout] | [INFO] [stdout] 1467 | / fn drain_data_changes( [INFO] [stdout] 1468 | | data_rx: &Receiver, [INFO] [stdout] 1469 | | state: &mut ReplState, [INFO] [stdout] 1470 | | runtime: &CoreRuntime, [INFO] [stdout] ... | [INFO] [stdout] 1477 | | nudge_skill_panel: &NudgeSkillPanel, [INFO] [stdout] 1478 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual checked division [INFO] [stdout] --> crates/tenex-repl/src/render.rs:267:8 [INFO] [stdout] | [INFO] [stdout] 267 | if width == 0 { [INFO] [stdout] | ^^^^^^^^^^ check performed here [INFO] [stdout] ... [INFO] [stdout] 270 | visible_len.saturating_sub(1) / width + 1 [INFO] [stdout] | ------------------------------------- division performed here [INFO] [stdout] | [INFO] [stdout] = help: consider using `checked_div` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_checked_ops [INFO] [stdout] = note: `#[warn(clippy::manual_checked_ops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/tenex-repl/src/render.rs:414:1 [INFO] [stdout] | [INFO] [stdout] 414 | / pub(crate) fn redraw_input( [INFO] [stdout] 415 | | stdout: &mut Stdout, [INFO] [stdout] 416 | | state: &ReplState, [INFO] [stdout] 417 | | runtime: &CoreRuntime, [INFO] [stdout] ... | [INFO] [stdout] 423 | | nudge_skill_panel: &NudgeSkillPanel, [INFO] [stdout] 424 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `fi` is used to index `filtered` [INFO] [stdout] --> crates/tenex-repl/src/render.rs:945:19 [INFO] [stdout] | [INFO] [stdout] 945 | for fi in panel.scroll_offset..visible_end { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 945 - for fi in panel.scroll_offset..visible_end { [INFO] [stdout] 945 + for (fi, ) in filtered.iter().enumerate().take(visible_end).skip(panel.scroll_offset) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded use of `concat!` macro [INFO] [stdout] --> crates/tenex-repl/src/render.rs:962:26 [INFO] [stdout] | [INFO] [stdout] 962 | (concat!("(*) "), 4) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace with: `"(*) "` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_concat [INFO] [stdout] = note: `#[warn(clippy::useless_concat)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `fi` is used to index `filtered` [INFO] [stdout] --> crates/tenex-repl/src/render.rs:1057:19 [INFO] [stdout] | [INFO] [stdout] 1057 | for fi in nudge_skill_panel.scroll_offset..visible_end { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 1057 - for fi in nudge_skill_panel.scroll_offset..visible_end { [INFO] [stdout] 1057 + for (fi, ) in filtered.iter().enumerate().take(visible_end).skip(nudge_skill_panel.scroll_offset) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> crates/tenex-repl/src/render.rs:1313:1 [INFO] [stdout] | [INFO] [stdout] 1313 | / pub(crate) fn apply_clear_screen( [INFO] [stdout] 1314 | | stdout: &mut Stdout, [INFO] [stdout] 1315 | | lines: &[String], [INFO] [stdout] 1316 | | state: &mut ReplState, [INFO] [stdout] ... | [INFO] [stdout] 1323 | | nudge_skill_panel: &NudgeSkillPanel, [INFO] [stdout] 1324 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> crates/tenex-repl/src/render.rs:1359:1 [INFO] [stdout] | [INFO] [stdout] 1359 | / pub(crate) fn print_above_input( [INFO] [stdout] 1360 | | stdout: &mut Stdout, [INFO] [stdout] 1361 | | text: &str, [INFO] [stdout] 1362 | | state: &ReplState, [INFO] [stdout] ... | [INFO] [stdout] 1369 | | nudge_skill_panel: &NudgeSkillPanel, [INFO] [stdout] 1370 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-repl/src/main.rs:507:33 [INFO] [stdout] | [INFO] [stdout] 507 | / ... if panel.resolve_selected_agent(runtime) { [INFO] [stdout] 508 | | ... panel.rebuild_origin_command(); [INFO] [stdout] 509 | | ... panel.switch_to_tools(); [INFO] [stdout] 510 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 506 ~ KeyCode::Enter [INFO] [stdout] 507 ~ if panel.resolve_selected_agent(runtime) => { [INFO] [stdout] 508 | panel.rebuild_origin_command(); [INFO] [stdout] 509 | panel.switch_to_tools(); [INFO] [stdout] 510 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-repl/src/main.rs:570:33 [INFO] [stdout] | [INFO] [stdout] 570 | / ... if panel.select_current_model() { [INFO] [stdout] 571 | | ... if panel.quick_save { [INFO] [stdout] 572 | | ... let msg = panel.save_model_only(runtime); [INFO] [stdout] 573 | | ... panel.deactivate(); [INFO] [stdout] ... | [INFO] [stdout] 580 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 569 ~ KeyCode::Enter | KeyCode::Char(' ') [INFO] [stdout] 570 ~ if panel.select_current_model() => { [INFO] [stdout] 571 | if panel.quick_save { [INFO] [stdout] ... [INFO] [stdout] 579 | } [INFO] [stdout] 580 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-repl/src/main.rs:782:29 [INFO] [stdout] | [INFO] [stdout] 782 | ... if completion.visible { completion.select_prev(); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 781 ~ (KeyCode::Up, _) [INFO] [stdout] 782 ~ if completion.visible => { completion.select_prev(); } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-repl/src/main.rs:785:29 [INFO] [stdout] | [INFO] [stdout] 785 | ... if completion.visible { completion.select_next(); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 784 ~ (KeyCode::Down, _) [INFO] [stdout] 785 ~ if completion.visible => { completion.select_next(); } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-repl/src/main.rs:788:29 [INFO] [stdout] | [INFO] [stdout] 788 | ... if completion.visible { completion.select_next(); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 787 ~ (KeyCode::Tab, _) [INFO] [stdout] 788 ~ if completion.visible => { completion.select_next(); } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-repl/src/main.rs:791:29 [INFO] [stdout] | [INFO] [stdout] 791 | ... if completion.visible { completion.select_prev(); } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 790 ~ (KeyCode::BackTab, _) [INFO] [stdout] 791 ~ if completion.visible => { completion.select_prev(); } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-repl/src/main.rs:1011:25 [INFO] [stdout] | [INFO] [stdout] 1011 | / ... if completion.visible && !completion.items.is_empty() { [INFO] [stdout] 1012 | | ... completion.select_prev(); [INFO] [stdout] 1013 | | ... editor.set_buffer(&completion.items[completion.selected].fill); [INFO] [stdout] 1014 | | ... redraw_input(&mut stdout, state, runtime, &editor, &mut completion, &panel, &status_nav, &stats_panel, &nudge_skill_pa... [INFO] [stdout] 1015 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1010 ~ (KeyCode::BackTab, _) [INFO] [stdout] 1011 ~ if completion.visible && !completion.items.is_empty() => { [INFO] [stdout] 1012 | completion.select_prev(); [INFO] [stdout] 1013 | editor.set_buffer(&completion.items[completion.selected].fill); [INFO] [stdout] 1014 | redraw_input(&mut stdout, state, runtime, &editor, &mut completion, &panel, &status_nav, &stats_panel, &nudge_skill_panel); [INFO] [stdout] 1015 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> crates/tenex-repl/src/main.rs:920:54 [INFO] [stdout] | [INFO] [stdout] 920 | ... format!("/agent {}", line[1..].trim()) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> crates/tenex-repl/src/main.rs:919:40 [INFO] [stdout] | [INFO] [stdout] 919 | ... let line = if line.starts_with('@') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 919 ~ let line = if let Some() = line.strip_prefix('@') { [INFO] [stdout] 920 ~ format!("/agent {}", .trim()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/tenex-repl/src/main.rs:989:25 [INFO] [stdout] | [INFO] [stdout] 989 | / if !completion.visible { [INFO] [stdout] 990 | | if editor.buffer.starts_with('/') || editor.buffer.starts_with('@') { [INFO] [stdout] 991 | | completion.pre_completion_buffer = Some(editor.buffer.clone()); [INFO] [stdout] 992 | | completion.update_from_buffer(&editor.buffer, state, runtime); [INFO] [stdout] 993 | | } [INFO] [stdout] 994 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 989 ~ if !completion.visible [INFO] [stdout] 990 ~ && (editor.buffer.starts_with('/') || editor.buffer.starts_with('@')) { [INFO] [stdout] 991 | completion.pre_completion_buffer = Some(editor.buffer.clone()); [INFO] [stdout] 992 | completion.update_from_buffer(&editor.buffer, state, runtime); [INFO] [stdout] 993 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> crates/tenex-repl/src/main.rs:1467:1 [INFO] [stdout] | [INFO] [stdout] 1467 | / fn drain_data_changes( [INFO] [stdout] 1468 | | data_rx: &Receiver, [INFO] [stdout] 1469 | | state: &mut ReplState, [INFO] [stdout] 1470 | | runtime: &CoreRuntime, [INFO] [stdout] ... | [INFO] [stdout] 1477 | | nudge_skill_panel: &NudgeSkillPanel, [INFO] [stdout] 1478 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> crates/tenex-cli/src/main.rs:542:5 [INFO] [stdout] | [INFO] [stdout] 542 | /// Returns the validated IDs or exits with error if any ID is invalid. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 542 | /// Returns the validated IDs or exits with error if any ID is invalid. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> crates/tenex-cli/src/main.rs:591:5 [INFO] [stdout] | [INFO] [stdout] 591 | /// Returns the validated IDs or exits with error if any ID is invalid. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 591 | /// Returns the validated IDs or exits with error if any ID is invalid. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> crates/tenex-cli/src/main.rs:542:5 [INFO] [stdout] | [INFO] [stdout] 542 | /// Returns the validated IDs or exits with error if any ID is invalid. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 542 | /// Returns the validated IDs or exits with error if any ID is invalid. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> crates/tenex-cli/src/main.rs:591:5 [INFO] [stdout] | [INFO] [stdout] 591 | /// Returns the validated IDs or exits with error if any ID is invalid. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 591 | /// Returns the validated IDs or exits with error if any ID is invalid. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/editor_handlers.rs:279:13 [INFO] [stdout] | [INFO] [stdout] 279 | / if !input_prefix::try_handle_prefix(app, c) { [INFO] [stdout] 280 | | // Not a prefix trigger, insert normally [INFO] [stdout] 281 | | app.chat_editor_mut().insert_char(c); [INFO] [stdout] 282 | | app.save_chat_draft(); [INFO] [stdout] 283 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 277 ~ KeyCode::Char(c) [INFO] [stdout] 278 | // Check if this is a prefix trigger (e.g., @ on empty input) [INFO] [stdout] 279 ~ if !input_prefix::try_handle_prefix(app, c) => { [INFO] [stdout] 280 | // Not a prefix trigger, insert normally [INFO] [stdout] 281 | app.chat_editor_mut().insert_char(c); [INFO] [stdout] 282 | app.save_chat_draft(); [INFO] [stdout] 283 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/actions.rs:24:13 [INFO] [stdout] | [INFO] [stdout] 24 | / if state.selected_index > 0 { [INFO] [stdout] 25 | | if let ModalState::ProjectActions(ref mut s) = app.modal_state { [INFO] [stdout] 26 | | s.selected_index -= 1; [INFO] [stdout] 27 | | } [INFO] [stdout] 28 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 23 ~ KeyCode::Up | KeyCode::Char('k') [INFO] [stdout] 24 ~ if state.selected_index > 0 => { [INFO] [stdout] 25 | if let ModalState::ProjectActions(ref mut s) = app.modal_state { [INFO] [stdout] 26 | s.selected_index -= 1; [INFO] [stdout] 27 | } [INFO] [stdout] 28 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/actions.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | / if state.selected_index + 1 < action_count { [INFO] [stdout] 32 | | if let ModalState::ProjectActions(ref mut s) = app.modal_state { [INFO] [stdout] 33 | | s.selected_index += 1; [INFO] [stdout] 34 | | } [INFO] [stdout] 35 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 30 ~ KeyCode::Down | KeyCode::Char('j') [INFO] [stdout] 31 ~ if state.selected_index + 1 < action_count => { [INFO] [stdout] 32 | if let ModalState::ProjectActions(ref mut s) = app.modal_state { [INFO] [stdout] 33 | s.selected_index += 1; [INFO] [stdout] 34 | } [INFO] [stdout] 35 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/actions.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | / if state.selected_index > 0 { [INFO] [stdout] 163 | | if let ModalState::ConversationActions(ref mut s) = app.modal_state { [INFO] [stdout] 164 | | s.selected_index -= 1; [INFO] [stdout] 165 | | } [INFO] [stdout] 166 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 161 ~ KeyCode::Up | KeyCode::Char('k') [INFO] [stdout] 162 ~ if state.selected_index > 0 => { [INFO] [stdout] 163 | if let ModalState::ConversationActions(ref mut s) = app.modal_state { [INFO] [stdout] 164 | s.selected_index -= 1; [INFO] [stdout] 165 | } [INFO] [stdout] 166 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/actions.rs:169:13 [INFO] [stdout] | [INFO] [stdout] 169 | / if state.selected_index + 1 < action_count { [INFO] [stdout] 170 | | if let ModalState::ConversationActions(ref mut s) = app.modal_state { [INFO] [stdout] 171 | | s.selected_index += 1; [INFO] [stdout] 172 | | } [INFO] [stdout] 173 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 168 ~ KeyCode::Down | KeyCode::Char('j') [INFO] [stdout] 169 ~ if state.selected_index + 1 < action_count => { [INFO] [stdout] 170 | if let ModalState::ConversationActions(ref mut s) = app.modal_state { [INFO] [stdout] 171 | s.selected_index += 1; [INFO] [stdout] 172 | } [INFO] [stdout] 173 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/actions.rs:247:13 [INFO] [stdout] | [INFO] [stdout] 247 | / if state.selected_index > 0 { [INFO] [stdout] 248 | | if let ModalState::ChatActions(ref mut s) = app.modal_state { [INFO] [stdout] 249 | | s.selected_index -= 1; [INFO] [stdout] 250 | | } [INFO] [stdout] 251 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 246 ~ KeyCode::Up | KeyCode::Char('k') [INFO] [stdout] 247 ~ if state.selected_index > 0 => { [INFO] [stdout] 248 | if let ModalState::ChatActions(ref mut s) = app.modal_state { [INFO] [stdout] 249 | s.selected_index -= 1; [INFO] [stdout] 250 | } [INFO] [stdout] 251 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/actions.rs:254:13 [INFO] [stdout] | [INFO] [stdout] 254 | / if state.selected_index + 1 < action_count { [INFO] [stdout] 255 | | if let ModalState::ChatActions(ref mut s) = app.modal_state { [INFO] [stdout] 256 | | s.selected_index += 1; [INFO] [stdout] 257 | | } [INFO] [stdout] 258 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 253 ~ KeyCode::Down | KeyCode::Char('j') [INFO] [stdout] 254 ~ if state.selected_index + 1 < action_count => { [INFO] [stdout] 255 | if let ModalState::ChatActions(ref mut s) = app.modal_state { [INFO] [stdout] 256 | s.selected_index += 1; [INFO] [stdout] 257 | } [INFO] [stdout] 258 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/actions.rs:269:13 [INFO] [stdout] | [INFO] [stdout] 269 | / if state.has_parent() { [INFO] [stdout] 270 | | execute_chat_action(app, &state, ChatAction::GoToParent); [INFO] [stdout] 271 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 268 ~ KeyCode::Char('p') [INFO] [stdout] 269 ~ if state.has_parent() => { [INFO] [stdout] 270 | execute_chat_action(app, &state, ChatAction::GoToParent); [INFO] [stdout] 271 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/agent.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 35 | / if state.can_proceed() { [INFO] [stdout] 36 | | state.step = AgentCreateStep::Instructions; [INFO] [stdout] 37 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 34 ~ KeyCode::Enter [INFO] [stdout] 35 ~ if state.can_proceed() => { [INFO] [stdout] 36 | state.step = AgentCreateStep::Instructions; [INFO] [stdout] 37 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/agent.rs:83:17 [INFO] [stdout] | [INFO] [stdout] 83 | / if state.instructions_cursor > 0 { [INFO] [stdout] 84 | | state.instructions_cursor -= 1; [INFO] [stdout] 85 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 82 ~ KeyCode::Left [INFO] [stdout] 83 ~ if state.instructions_cursor > 0 => { [INFO] [stdout] 84 | state.instructions_cursor -= 1; [INFO] [stdout] 85 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/agent.rs:88:17 [INFO] [stdout] | [INFO] [stdout] 88 | / if state.instructions_cursor < state.instructions.len() { [INFO] [stdout] 89 | | state.instructions_cursor += 1; [INFO] [stdout] 90 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 87 ~ KeyCode::Right [INFO] [stdout] 88 ~ if state.instructions_cursor < state.instructions.len() => { [INFO] [stdout] 89 | state.instructions_cursor += 1; [INFO] [stdout] 90 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/agent.rs:152:17 [INFO] [stdout] | [INFO] [stdout] 152 | / if state.instructions_scroll > 0 { [INFO] [stdout] 153 | | state.instructions_scroll -= 1; [INFO] [stdout] 154 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 151 ~ KeyCode::Up [INFO] [stdout] 152 ~ if state.instructions_scroll > 0 => { [INFO] [stdout] 153 | state.instructions_scroll -= 1; [INFO] [stdout] 154 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/agent.rs:272:13 [INFO] [stdout] | [INFO] [stdout] 272 | / if state.focus == AgentConfigFocus::Tools { [INFO] [stdout] 273 | | if let Some(settings) = state.settings.as_mut() { [INFO] [stdout] 274 | | settings.toggle_at_cursor(); [INFO] [stdout] 275 | | } [INFO] [stdout] 276 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 271 ~ KeyCode::Char(' ') [INFO] [stdout] 272 ~ if state.focus == AgentConfigFocus::Tools => { [INFO] [stdout] 273 | if let Some(settings) = state.settings.as_mut() { [INFO] [stdout] 274 | settings.toggle_at_cursor(); [INFO] [stdout] 275 | } [INFO] [stdout] 276 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/backend.rs:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | / if state.selected_index > 0 { [INFO] [stdout] 22 | | if let ModalState::BackendApproval(ref mut s) = app.modal_state { [INFO] [stdout] 23 | | s.selected_index -= 1; [INFO] [stdout] 24 | | } [INFO] [stdout] 25 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 20 ~ KeyCode::Up | KeyCode::Char('k') [INFO] [stdout] 21 ~ if state.selected_index > 0 => { [INFO] [stdout] 22 | if let ModalState::BackendApproval(ref mut s) = app.modal_state { [INFO] [stdout] 23 | s.selected_index -= 1; [INFO] [stdout] 24 | } [INFO] [stdout] 25 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/backend.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | / if state.selected_index + 1 < action_count { [INFO] [stdout] 29 | | if let ModalState::BackendApproval(ref mut s) = app.modal_state { [INFO] [stdout] 30 | | s.selected_index += 1; [INFO] [stdout] 31 | | } [INFO] [stdout] 32 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 27 ~ KeyCode::Down | KeyCode::Char('j') [INFO] [stdout] 28 ~ if state.selected_index + 1 < action_count => { [INFO] [stdout] 29 | if let ModalState::BackendApproval(ref mut s) = app.modal_state { [INFO] [stdout] 30 | s.selected_index += 1; [INFO] [stdout] 31 | } [INFO] [stdout] 32 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/command_palette.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | / if app.tab_modal_index() > 0 { [INFO] [stdout] 78 | | app.set_tab_modal_index(app.tab_modal_index() - 1); [INFO] [stdout] 79 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 76 ~ KeyCode::Up [INFO] [stdout] 77 ~ if app.tab_modal_index() > 0 => { [INFO] [stdout] 78 | app.set_tab_modal_index(app.tab_modal_index() - 1); [INFO] [stdout] 79 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/command_palette.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | / if app.tab_modal_index() + 1 < app.open_tabs().len() { [INFO] [stdout] 83 | | app.set_tab_modal_index(app.tab_modal_index() + 1); [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 81 ~ KeyCode::Down [INFO] [stdout] 82 ~ if app.tab_modal_index() + 1 < app.open_tabs().len() => { [INFO] [stdout] 83 | app.set_tab_modal_index(app.tab_modal_index() + 1); [INFO] [stdout] 84 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/command_palette.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | / if !app.open_tabs().is_empty() { [INFO] [stdout] 96 | | let idx = app.tab_modal_index(); [INFO] [stdout] 97 | | app.close_tab_at(idx); [INFO] [stdout] 98 | | if app.open_tabs().is_empty() { [INFO] [stdout] ... | [INFO] [stdout] 101 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 94 ~ KeyCode::Char('x') [INFO] [stdout] 95 ~ if !app.open_tabs().is_empty() => { [INFO] [stdout] 96 | let idx = app.tab_modal_index(); [INFO] [stdout] ... [INFO] [stdout] 100 | } [INFO] [stdout] 101 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/nudge.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 114 | filtered.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 114 - filtered.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 114 + filtered.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/nudge.rs:191:21 [INFO] [stdout] | [INFO] [stdout] 191 | / if state.can_proceed() { [INFO] [stdout] 192 | | state.next_step(); [INFO] [stdout] 193 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 189 ~ KeyCode::Tab [INFO] [stdout] 190 | // Tab to proceed to next step [INFO] [stdout] 191 ~ if state.can_proceed() => { [INFO] [stdout] 192 | state.next_step(); [INFO] [stdout] 193 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/nudge.rs:293:33 [INFO] [stdout] | [INFO] [stdout] 293 | / ... if !state.get_configured_tools().is_empty() { [INFO] [stdout] 294 | | ... state.selecting_configured = true; [INFO] [stdout] 295 | | ... state.configured_tool_index = 0; [INFO] [stdout] 296 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 292 ~ KeyCode::Char('x') [INFO] [stdout] 293 ~ if !state.get_configured_tools().is_empty() => { [INFO] [stdout] 294 | state.selecting_configured = true; [INFO] [stdout] 295 | state.configured_tool_index = 0; [INFO] [stdout] 296 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/nudge.rs:339:29 [INFO] [stdout] | [INFO] [stdout] 339 | / ... if state.tool_index > 0 { [INFO] [stdout] 340 | | ... state.tool_index -= 1; [INFO] [stdout] 341 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 338 ~ KeyCode::Up [INFO] [stdout] 339 ~ if state.tool_index > 0 => { [INFO] [stdout] 340 | state.tool_index -= 1; [INFO] [stdout] 341 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/nudge.rs:449:21 [INFO] [stdout] | [INFO] [stdout] 449 | / if state.review_scroll > 0 { [INFO] [stdout] 450 | | state.review_scroll -= 1; [INFO] [stdout] 451 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 448 ~ KeyCode::Up [INFO] [stdout] 449 ~ if state.review_scroll > 0 => { [INFO] [stdout] 450 | state.review_scroll -= 1; [INFO] [stdout] 451 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/search.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | / if app.search_index > 0 { [INFO] [stdout] 75 | | app.search_index -= 1; [INFO] [stdout] 76 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 73 ~ KeyCode::Up [INFO] [stdout] 74 ~ if app.search_index > 0 => { [INFO] [stdout] 75 | app.search_index -= 1; [INFO] [stdout] 76 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/selectors.rs:227:17 [INFO] [stdout] | [INFO] [stdout] 227 | / if state.selector.index > 0 { [INFO] [stdout] 228 | | state.selector.index -= 1; [INFO] [stdout] 229 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 226 ~ KeyCode::Up [INFO] [stdout] 227 ~ if state.selector.index > 0 => { [INFO] [stdout] 228 | state.selector.index -= 1; [INFO] [stdout] 229 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/selectors.rs:232:17 [INFO] [stdout] | [INFO] [stdout] 232 | / if item_count > 0 && state.selector.index < item_count - 1 { [INFO] [stdout] 233 | | state.selector.index += 1; [INFO] [stdout] 234 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 231 ~ KeyCode::Down [INFO] [stdout] 232 ~ if item_count > 0 && state.selector.index < item_count - 1 => { [INFO] [stdout] 233 | state.selector.index += 1; [INFO] [stdout] 234 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/view.rs:104:17 [INFO] [stdout] | [INFO] [stdout] 104 | / if state.show_threads { [INFO] [stdout] 105 | | state.focus = ReportViewerFocus::Threads; [INFO] [stdout] 106 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 103 ~ KeyCode::Char('l') | KeyCode::Right [INFO] [stdout] 104 ~ if state.show_threads => { [INFO] [stdout] 105 | state.focus = ReportViewerFocus::Threads; [INFO] [stdout] 106 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/view.rs:130:17 [INFO] [stdout] | [INFO] [stdout] 130 | / if state.version_index > 0 { [INFO] [stdout] 131 | | state.version_index -= 1; [INFO] [stdout] 132 | | let slug = state.report.slug.clone(); [INFO] [stdout] 133 | | let versions = app [INFO] [stdout] ... | [INFO] [stdout] 145 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 129 ~ KeyCode::Char(']') [INFO] [stdout] 130 ~ if state.version_index > 0 => { [INFO] [stdout] 131 | state.version_index -= 1; [INFO] [stdout] ... [INFO] [stdout] 144 | } [INFO] [stdout] 145 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/view.rs:208:17 [INFO] [stdout] | [INFO] [stdout] 208 | / if state.focus == ReportViewerFocus::Threads || state.show_threads { [INFO] [stdout] 209 | | app.set_warning_status("Thread creation not yet implemented"); [INFO] [stdout] 210 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 207 ~ KeyCode::Char('n') [INFO] [stdout] 208 ~ if (state.focus == ReportViewerFocus::Threads || state.show_threads) => { [INFO] [stdout] 209 | app.set_warning_status("Thread creation not yet implemented"); [INFO] [stdout] 210 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/view.rs:281:17 [INFO] [stdout] | [INFO] [stdout] 281 | / if c.is_ascii_hexdigit() { [INFO] [stdout] 282 | | if let ModalState::DebugStats(ref mut state) = app.modal_state { [INFO] [stdout] 283 | | if state.e_tag_query_input.len() < 64 { [INFO] [stdout] 284 | | state.e_tag_query_input.push(c.to_ascii_lowercase()); [INFO] [stdout] ... | [INFO] [stdout] 287 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 279 ~ KeyCode::Char(c) [INFO] [stdout] 280 | // Accept hex characters directly - this is the main input handler [INFO] [stdout] 281 ~ if c.is_ascii_hexdigit() => { [INFO] [stdout] 282 | if let ModalState::DebugStats(ref mut state) = app.modal_state { [INFO] [stdout] ... [INFO] [stdout] 286 | } [INFO] [stdout] 287 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/workspace.rs:72:21 [INFO] [stdout] | [INFO] [stdout] 72 | / if !workspaces.is_empty() { [INFO] [stdout] 73 | | state.enter_delete_mode(); [INFO] [stdout] 74 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 70 ~ KeyCode::Char('d') [INFO] [stdout] 71 | // Delete selected workspace [INFO] [stdout] 72 ~ if !workspaces.is_empty() => { [INFO] [stdout] 73 | state.enter_delete_mode(); [INFO] [stdout] 74 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/workspace.rs:117:21 [INFO] [stdout] | [INFO] [stdout] 117 | / if state.project_selector_index > 0 { [INFO] [stdout] 118 | | state.project_selector_index -= 1; [INFO] [stdout] 119 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 116 ~ KeyCode::Up | KeyCode::Char('k') if state.focus == WorkspaceFocus::Projects [INFO] [stdout] 117 ~ && state.project_selector_index > 0 => { [INFO] [stdout] 118 | state.project_selector_index -= 1; [INFO] [stdout] 119 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/workspace.rs:122:21 [INFO] [stdout] | [INFO] [stdout] 122 | / if state.project_selector_index + 1 < project_count { [INFO] [stdout] 123 | | state.project_selector_index += 1; [INFO] [stdout] 124 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 121 ~ KeyCode::Down | KeyCode::Char('j') if state.focus == WorkspaceFocus::Projects [INFO] [stdout] 122 ~ && state.project_selector_index + 1 < project_count => { [INFO] [stdout] 123 | state.project_selector_index += 1; [INFO] [stdout] 124 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/workspace.rs:133:21 [INFO] [stdout] | [INFO] [stdout] 133 | / if state.can_save() { [INFO] [stdout] 134 | | // Save workspace [INFO] [stdout] 135 | | let name = state.editing_name.clone(); [INFO] [stdout] 136 | | let project_ids: Vec = [INFO] [stdout] ... | [INFO] [stdout] 161 | | return; [INFO] [stdout] 162 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 132 ~ KeyCode::Enter [INFO] [stdout] 133 ~ if state.can_save() => { [INFO] [stdout] 134 | // Save workspace [INFO] [stdout] ... [INFO] [stdout] 161 | return; [INFO] [stdout] 162 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/workspace.rs:676:13 [INFO] [stdout] | [INFO] [stdout] 676 | / if state.current_tab == ui::modal::SettingsTab::AI { [INFO] [stdout] 677 | | match state.selected_ai_setting() { [INFO] [stdout] 678 | | Some(ui::modal::AiSetting::ElevenLabsApiKey) => { [INFO] [stdout] 679 | | if state.ai.elevenlabs_key_exists { [INFO] [stdout] ... | [INFO] [stdout] 738 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 674 ~ KeyCode::Delete if !state.editing [INFO] [stdout] 675 | // Delete/clear settings when not editing [INFO] [stdout] 676 ~ && state.current_tab == ui::modal::SettingsTab::AI => { [INFO] [stdout] 677 | match state.selected_ai_setting() { [INFO] [stdout] ... [INFO] [stdout] 737 | } [INFO] [stdout] 738 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:645:13 [INFO] [stdout] | [INFO] [stdout] 645 | / if !app.report_search_filter.is_empty() { [INFO] [stdout] 646 | | app.report_search_filter.clear(); [INFO] [stdout] 647 | | app.tab_selection.insert(HomeTab::Reports, 0); [INFO] [stdout] 648 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 644 ~ KeyCode::Esc if app.home_panel_focus == HomeTab::Reports [INFO] [stdout] 645 ~ && !app.report_search_filter.is_empty() => { [INFO] [stdout] 646 | app.report_search_filter.clear(); [INFO] [stdout] 647 | app.tab_selection.insert(HomeTab::Reports, 0); [INFO] [stdout] 648 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:729:17 [INFO] [stdout] | [INFO] [stdout] 729 | / if state.add_index > 0 { [INFO] [stdout] 730 | | state.add_index -= 1; [INFO] [stdout] 731 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 728 ~ KeyCode::Up [INFO] [stdout] 729 ~ if state.add_index > 0 => { [INFO] [stdout] 730 | state.add_index -= 1; [INFO] [stdout] 731 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:898:17 [INFO] [stdout] | [INFO] [stdout] 898 | / if state.focus == ProjectSettingsFocus::Agents [INFO] [stdout] 899 | | && !state.pending_agent_definition_ids.is_empty() [INFO] [stdout] 900 | | && state.selector_index > 0 [INFO] [stdout] ... | [INFO] [stdout] 904 | | state.agents_scroll_offset = 0; [INFO] [stdout] 905 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 896 ~ KeyCode::Char('p') [INFO] [stdout] 897 | // Set PM only works in agents pane [INFO] [stdout] ... [INFO] [stdout] 900 | && state.selector_index > 0 [INFO] [stdout] 901 ~ => { [INFO] [stdout] 902 | state.set_pm(state.selector_index); [INFO] [stdout] 903 | state.selector_index = 0; [INFO] [stdout] 904 | state.agents_scroll_offset = 0; [INFO] [stdout] 905 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:908:17 [INFO] [stdout] | [INFO] [stdout] 908 | / if state.has_changes() { [INFO] [stdout] 909 | | let project_a_tag = state.project_a_tag.clone(); [INFO] [stdout] 910 | | let agent_definition_ids = state.pending_agent_definition_ids.clone(); [INFO] [stdout] 911 | | let mcp_tool_ids = state.pending_mcp_tool_ids.clone(); [INFO] [stdout] ... | [INFO] [stdout] 926 | | return; [INFO] [stdout] 927 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 907 ~ KeyCode::Enter [INFO] [stdout] 908 ~ if state.has_changes() => { [INFO] [stdout] 909 | let project_a_tag = state.project_a_tag.clone(); [INFO] [stdout] ... [INFO] [stdout] 926 | return; [INFO] [stdout] 927 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:962:17 [INFO] [stdout] | [INFO] [stdout] 962 | / if state.can_proceed() { [INFO] [stdout] 963 | | state.step = CreateProjectStep::SelectAgents; [INFO] [stdout] 964 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 961 ~ KeyCode::Enter [INFO] [stdout] 962 ~ if state.can_proceed() => { [INFO] [stdout] 963 | state.step = CreateProjectStep::SelectAgents; [INFO] [stdout] 964 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:997:21 [INFO] [stdout] | [INFO] [stdout] 997 | / if state.agent_selector.index > 0 { [INFO] [stdout] 998 | | state.agent_selector.index -= 1; [INFO] [stdout] 999 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 996 ~ KeyCode::Up [INFO] [stdout] 997 ~ if state.agent_selector.index > 0 => { [INFO] [stdout] 998 | state.agent_selector.index -= 1; [INFO] [stdout] 999 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1002:21 [INFO] [stdout] | [INFO] [stdout] 1002 | / if item_count > 0 && state.agent_selector.index + 1 < item_count { [INFO] [stdout] 1003 | | state.agent_selector.index += 1; [INFO] [stdout] 1004 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1001 ~ KeyCode::Down [INFO] [stdout] 1002 ~ if item_count > 0 && state.agent_selector.index + 1 < item_count => { [INFO] [stdout] 1003 | state.agent_selector.index += 1; [INFO] [stdout] 1004 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1041:21 [INFO] [stdout] | [INFO] [stdout] 1041 | / if state.tool_selector.index > 0 { [INFO] [stdout] 1042 | | state.tool_selector.index -= 1; [INFO] [stdout] 1043 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1040 ~ KeyCode::Up [INFO] [stdout] 1041 ~ if state.tool_selector.index > 0 => { [INFO] [stdout] 1042 | state.tool_selector.index -= 1; [INFO] [stdout] 1043 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1046:21 [INFO] [stdout] | [INFO] [stdout] 1046 | / if item_count > 0 && state.tool_selector.index + 1 < item_count { [INFO] [stdout] 1047 | | state.tool_selector.index += 1; [INFO] [stdout] 1048 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1045 ~ KeyCode::Down [INFO] [stdout] 1046 ~ if item_count > 0 && state.tool_selector.index + 1 < item_count => { [INFO] [stdout] 1047 | state.tool_selector.index += 1; [INFO] [stdout] 1048 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1294:13 [INFO] [stdout] | [INFO] [stdout] 1294 | / if app.view == View::AgentBrowser && !app.home.in_agent_detail() { [INFO] [stdout] 1295 | | app.home.backspace_filter(); [INFO] [stdout] 1296 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1293 ~ KeyCode::Backspace [INFO] [stdout] 1294 ~ if app.view == View::AgentBrowser && !app.home.in_agent_detail() => { [INFO] [stdout] 1295 | app.home.backspace_filter(); [INFO] [stdout] 1296 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1342:13 [INFO] [stdout] | [INFO] [stdout] 1342 | / if app.view == View::Chat { [INFO] [stdout] 1343 | | app.scroll_offset = 0; [INFO] [stdout] 1344 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1341 ~ KeyCode::Home [INFO] [stdout] 1342 ~ if app.view == View::Chat => { [INFO] [stdout] 1343 | app.scroll_offset = 0; [INFO] [stdout] 1344 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1347:13 [INFO] [stdout] | [INFO] [stdout] 1347 | / if app.view == View::Chat { [INFO] [stdout] 1348 | | app.scroll_to_bottom(); [INFO] [stdout] 1349 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1346 ~ KeyCode::End [INFO] [stdout] 1347 ~ if app.view == View::Chat => { [INFO] [stdout] 1348 | app.scroll_to_bottom(); [INFO] [stdout] 1349 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1352:13 [INFO] [stdout] | [INFO] [stdout] 1352 | / if app.view == View::Chat { [INFO] [stdout] 1353 | | app.scroll_up(20); [INFO] [stdout] 1354 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1351 ~ KeyCode::PageUp [INFO] [stdout] 1352 ~ if app.view == View::Chat => { [INFO] [stdout] 1353 | app.scroll_up(20); [INFO] [stdout] 1354 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1357:13 [INFO] [stdout] | [INFO] [stdout] 1357 | / if app.view == View::Chat { [INFO] [stdout] 1358 | | app.scroll_down(20); [INFO] [stdout] 1359 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1356 ~ KeyCode::PageDown [INFO] [stdout] 1357 ~ if app.view == View::Chat => { [INFO] [stdout] 1358 | app.scroll_down(20); [INFO] [stdout] 1359 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1301:17 [INFO] [stdout] | [INFO] [stdout] 1301 | / if app.selected_message_index() > 0 { [INFO] [stdout] 1302 | | app.set_selected_message_index(app.selected_message_index() - 1); [INFO] [stdout] 1303 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1299 ~ View::Chat [INFO] [stdout] 1300 | // Simple navigation - expanded groups are flattened so each item is selectable [INFO] [stdout] 1301 ~ if app.selected_message_index() > 0 => { [INFO] [stdout] 1302 | app.set_selected_message_index(app.selected_message_index() - 1); [INFO] [stdout] 1303 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1366:17 [INFO] [stdout] | [INFO] [stdout] 1366 | / if !app.home.in_agent_detail() { [INFO] [stdout] 1367 | | let agents = app.filtered_agent_definitions(); [INFO] [stdout] 1368 | | if let Some(agent) = agents.get(app.home.agent_browser_index) { [INFO] [stdout] 1369 | | app.home.enter_agent_detail(agent.id.clone()); [INFO] [stdout] ... | [INFO] [stdout] 1372 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1365 ~ View::AgentBrowser [INFO] [stdout] 1366 ~ if !app.home.in_agent_detail() => { [INFO] [stdout] 1367 | let agents = app.filtered_agent_definitions(); [INFO] [stdout] ... [INFO] [stdout] 1371 | } [INFO] [stdout] 1372 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1414:81 [INFO] [stdout] | [INFO] [stdout] 1414 | if c == 'a' && app.view == View::Chat && !app.available_agents().is_empty() { [INFO] [stdout] | _________________________________________________________________________________^ [INFO] [stdout] 1415 | | app.open_agent_config_modal(); [INFO] [stdout] 1416 | | } else if c == '@' && app.view == View::Chat && !app.available_agents().is_empty() { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1416:88 [INFO] [stdout] | [INFO] [stdout] 1416 | } else if c == '@' && app.view == View::Chat && !app.available_agents().is_empty() { [INFO] [stdout] | ________________________________________________________________________________________^ [INFO] [stdout] 1417 | | app.open_agent_config_modal(); [INFO] [stdout] 1418 | | } else if c == '.' && app.view == View::Chat { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual checked division [INFO] [stdout] --> crates/tenex-tui/src/runtime.rs:169:20 [INFO] [stdout] | [INFO] [stdout] 169 | if elapsed > 0 { loop_count / elapsed } else { loop_count }, [INFO] [stdout] | ^^^^^^^^^^^ -------------------- division performed here [INFO] [stdout] | | [INFO] [stdout] | check performed here [INFO] [stdout] | [INFO] [stdout] = help: consider using `checked_div` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_checked_ops [INFO] [stdout] = note: `#[warn(clippy::manual_checked_ops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/runtime.rs:236:29 [INFO] [stdout] | [INFO] [stdout] 236 | / ... if app.view == View::Chat { [INFO] [stdout] 237 | | ... match mouse.kind { [INFO] [stdout] 238 | | ... MouseEventKind::ScrollUp => { [INFO] [stdout] 239 | | ... app.scroll_up(3); [INFO] [stdout] ... | [INFO] [stdout] 246 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 234 ~ Event::Mouse(mouse) [INFO] [stdout] 235 | // Handle mouse scroll in Chat view [INFO] [stdout] 236 ~ if app.view == View::Chat => { [INFO] [stdout] 237 | match mouse.kind { [INFO] [stdout] ... [INFO] [stdout] 245 | } [INFO] [stdout] 246 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> crates/tenex-tui/src/runtime.rs:223:40 [INFO] [stdout] | [INFO] [stdout] 223 | ... if app.last_esc_time.map_or(false, |t| t.elapsed() < Duration::from_secs(2)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 223 - if app.last_esc_time.map_or(false, |t| t.elapsed() < Duration::from_secs(2)) { [INFO] [stdout] 223 + if app.last_esc_time.is_some_and(|t| t.elapsed() < Duration::from_secs(2)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/ui/app.rs:3286:9 [INFO] [stdout] | [INFO] [stdout] 3286 | results.sort_by(|a, b| b.thread.last_activity.cmp(&a.thread.last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 3286 - results.sort_by(|a, b| b.thread.last_activity.cmp(&a.thread.last_activity)); [INFO] [stdout] 3286 + results.sort_by_key(|b| std::cmp::Reverse(b.thread.last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/app.rs:3693:9 [INFO] [stdout] | [INFO] [stdout] 3693 | / fn try_add_chat_draft( [INFO] [stdout] 3694 | | drafts_by_id: &mut std::collections::HashMap, u64)>, [INFO] [stdout] 3695 | | conversation_id: &str, [INFO] [stdout] 3696 | | text: &str, [INFO] [stdout] ... | [INFO] [stdout] 3702 | | text_matches_terms_fn: fn(&str, &[String]) -> bool, [INFO] [stdout] 3703 | | ) -> bool { [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/ui/app.rs:3824:9 [INFO] [stdout] | [INFO] [stdout] 3824 | entries.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 3824 - entries.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 3824 + entries.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> crates/tenex-tui/src/ui/app.rs:3877:13 [INFO] [stdout] | [INFO] [stdout] 3877 | / if let DisplayItem::DelegationPreview { [INFO] [stdout] 3878 | | thread_id: delegation_thread_id, [INFO] [stdout] 3879 | | .. [INFO] [stdout] 3880 | | } = item [INFO] [stdout] 3881 | | { [INFO] [stdout] 3882 | | return Some(delegation_thread_id.clone()); [INFO] [stdout] 3883 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> crates/tenex-tui/src/ui/app.rs:3876:21 [INFO] [stdout] | [INFO] [stdout] 3876 | if let Some(item) = grouped.get(self.conversation.selected_message_index) { [INFO] [stdout] | ^^^^ replace this binding [INFO] [stdout] 3877 | if let DisplayItem::DelegationPreview { [INFO] [stdout] | ____________________^ [INFO] [stdout] 3878 | | thread_id: delegation_thread_id, [INFO] [stdout] 3879 | | .. [INFO] [stdout] 3880 | | } = item [INFO] [stdout] | |_____________^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/tenex-tui/src/ui/app.rs:4137:40 [INFO] [stdout] | [INFO] [stdout] 4137 | self.notify(Notification::info(&format!( [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 4138 | | "Scheduled events: {}", [INFO] [stdout] 4139 | | new_filter.label() [INFO] [stdout] 4140 | | ))); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 4137 ~ self.notify(Notification::info(format!( [INFO] [stdout] 4138 + "Scheduled events: {}", [INFO] [stdout] 4139 + new_filter.label() [INFO] [stdout] 4140 ~ ))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/ui/app.rs:4307:9 [INFO] [stdout] | [INFO] [stdout] 4307 | entries.sort_by(|a, b| b.completed_at_ms.cmp(&a.completed_at_ms)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 4307 - entries.sort_by(|a, b| b.completed_at_ms.cmp(&a.completed_at_ms)); [INFO] [stdout] 4307 + entries.sort_by_key(|b| std::cmp::Reverse(b.completed_at_ms)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual checked division [INFO] [stdout] --> crates/tenex-tui/src/ui/components/chat_sidebar.rs:373:21 [INFO] [stdout] | [INFO] [stdout] 373 | let filled = if total > 0 { [INFO] [stdout] | ^^^^^^^^^ check performed here [INFO] [stdout] 374 | (completed * content_width) / total [INFO] [stdout] | ----------------------------------- division performed here [INFO] [stdout] | [INFO] [stdout] = help: consider using `checked_div` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_checked_ops [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> crates/tenex-tui/src/ui/components/statusbar.rs:83:31 [INFO] [stdout] | [INFO] [stdout] 83 | let agent_count_clamped = active_agent_count.max(1).min(10) as f32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `active_agent_count.clamp(1, 10)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> crates/tenex-tui/src/ui/components/statusbar.rs:106:17 [INFO] [stdout] | [INFO] [stdout] 106 | let r = ((WAVE_BASE_COLOR_R as f32 * brightness).min(255.0).max(0.0)) as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `(WAVE_BASE_COLOR_R as f32 * brightness).clamp(0.0, 255.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> crates/tenex-tui/src/ui/components/statusbar.rs:107:17 [INFO] [stdout] | [INFO] [stdout] 107 | let g = ((WAVE_BASE_COLOR_G as f32 * brightness).min(255.0).max(0.0)) as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `(WAVE_BASE_COLOR_G as f32 * brightness).clamp(0.0, 255.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> crates/tenex-tui/src/ui/components/statusbar.rs:108:17 [INFO] [stdout] | [INFO] [stdout] 108 | let b = ((WAVE_BASE_COLOR_B as f32 * brightness).min(255.0).max(0.0)) as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `(WAVE_BASE_COLOR_B as f32 * brightness).clamp(0.0, 255.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/components/statusbar.rs:132:1 [INFO] [stdout] | [INFO] [stdout] 132 | / pub fn render_statusbar( [INFO] [stdout] 133 | | f: &mut Frame, [INFO] [stdout] 134 | | area: Rect, [INFO] [stdout] 135 | | current_notification: Option<&Notification>, [INFO] [stdout] ... | [INFO] [stdout] 140 | | audio_playing: bool, [INFO] [stdout] 141 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/ui/hotkeys.rs:707:9 [INFO] [stdout] | [INFO] [stdout] 707 | bindings.sort_by(|a, b| b.priority.cmp(&a.priority)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 707 - bindings.sort_by(|a, b| b.priority.cmp(&a.priority)); [INFO] [stdout] 707 + bindings.sort_by_key(|b| std::cmp::Reverse(b.priority)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/ui/markdown.rs:352:17 [INFO] [stdout] | [INFO] [stdout] 352 | / if !current_line.is_empty() { [INFO] [stdout] 353 | | lines.push(Line::from(current_line.clone())); [INFO] [stdout] 354 | | current_line.clear(); [INFO] [stdout] 355 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 351 ~ Event::SoftBreak | Event::HardBreak [INFO] [stdout] 352 ~ if !current_line.is_empty() => { [INFO] [stdout] 353 | lines.push(Line::from(current_line.clone())); [INFO] [stdout] 354 | current_line.clear(); [INFO] [stdout] 355 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/ui/markdown.rs:156:21 [INFO] [stdout] | [INFO] [stdout] 156 | / if !current_line.is_empty() { [INFO] [stdout] 157 | | lines.push(Line::from(current_line.clone())); [INFO] [stdout] 158 | | current_line.clear(); [INFO] [stdout] 159 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 155 ~ TagEnd::Item [INFO] [stdout] 156 ~ if !current_line.is_empty() => { [INFO] [stdout] 157 | lines.push(Line::from(current_line.clone())); [INFO] [stdout] 158 | current_line.clear(); [INFO] [stdout] 159 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/ui/markdown.rs:307:21 [INFO] [stdout] | [INFO] [stdout] 307 | / if !current_table_row.is_empty() { [INFO] [stdout] 308 | | table_rows.push(current_table_row.clone()); [INFO] [stdout] 309 | | current_table_row.clear(); [INFO] [stdout] 310 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 306 ~ TagEnd::TableHead [INFO] [stdout] 307 ~ if !current_table_row.is_empty() => { [INFO] [stdout] 308 | table_rows.push(current_table_row.clone()); [INFO] [stdout] 309 | current_table_row.clear(); [INFO] [stdout] 310 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/ui/markdown.rs:313:21 [INFO] [stdout] | [INFO] [stdout] 313 | / if !current_table_row.is_empty() { [INFO] [stdout] 314 | | table_rows.push(current_table_row.clone()); [INFO] [stdout] 315 | | current_table_row.clear(); [INFO] [stdout] 316 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 312 ~ TagEnd::TableRow [INFO] [stdout] 313 ~ if !current_table_row.is_empty() => { [INFO] [stdout] 314 | table_rows.push(current_table_row.clone()); [INFO] [stdout] 315 | current_table_row.clear(); [INFO] [stdout] 316 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/nudge/views/create_form.rs:751:1 [INFO] [stdout] | [INFO] [stdout] 751 | / fn render_permission_column( [INFO] [stdout] 752 | | f: &mut Frame, [INFO] [stdout] 753 | | area: Rect, [INFO] [stdout] 754 | | title: &str, [INFO] [stdout] ... | [INFO] [stdout] 759 | | column_type: &str, // "allow" or "deny" [INFO] [stdout] 760 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `y` is used as a loop counter [INFO] [stdout] --> crates/tenex-tui/src/ui/nudge/views/create_form.rs:1029:5 [INFO] [stdout] | [INFO] [stdout] 1029 | for error in &errors { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (y, error) in (area.y..).zip(errors.iter())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/ui/nudge/views/list_view.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | filtered.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 79 - filtered.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 79 + filtered.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/ui/search.rs:250:5 [INFO] [stdout] | [INFO] [stdout] 250 | results.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 250 - results.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 250 + results.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual checked division [INFO] [stdout] --> crates/tenex-tui/src/ui/views/agent_browser.rs:430:33 [INFO] [stdout] | [INFO] [stdout] 430 | let scroll_percent = if max_scroll > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ check performed here [INFO] [stdout] 431 | (scroll_offset * 100) / max_scroll [INFO] [stdout] | ---------------------------------- division performed here [INFO] [stdout] | [INFO] [stdout] = help: consider using `checked_div` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_checked_ops [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/views/app_settings.rs:382:1 [INFO] [stdout] | [INFO] [stdout] 382 | / fn render_select_field( [INFO] [stdout] 383 | | f: &mut Frame, [INFO] [stdout] 384 | | x: u16, [INFO] [stdout] 385 | | y: u16, [INFO] [stdout] ... | [INFO] [stdout] 390 | | is_selected: bool, [INFO] [stdout] 391 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/views/app_settings.rs:439:1 [INFO] [stdout] | [INFO] [stdout] 439 | / fn render_toggle_row( [INFO] [stdout] 440 | | f: &mut Frame, [INFO] [stdout] 441 | | x: u16, [INFO] [stdout] 442 | | y: u16, [INFO] [stdout] ... | [INFO] [stdout] 447 | | is_selected: bool, [INFO] [stdout] 448 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/views/app_settings.rs:490:1 [INFO] [stdout] | [INFO] [stdout] 490 | / fn render_text_setting_row( [INFO] [stdout] 491 | | f: &mut Frame, [INFO] [stdout] 492 | | x: u16, [INFO] [stdout] 493 | | y: u16, [INFO] [stdout] ... | [INFO] [stdout] 499 | | is_editing: bool, [INFO] [stdout] 500 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/views/app_settings.rs:552:1 [INFO] [stdout] | [INFO] [stdout] 552 | / fn render_api_key_row( [INFO] [stdout] 553 | | f: &mut Frame, [INFO] [stdout] 554 | | x: u16, [INFO] [stdout] 555 | | y: u16, [INFO] [stdout] ... | [INFO] [stdout] 562 | | key_exists_in_storage: bool, [INFO] [stdout] 563 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `char_count` is used as a loop counter [INFO] [stdout] --> crates/tenex-tui/src/ui/views/chat/cards.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | for (i, _) in text.char_indices() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (char_count, (i, _)) in text.char_indices().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `context_pad` is never smaller than `0` and has therefore no effect [INFO] [stdout] --> crates/tenex-tui/src/ui/views/chat/input.rs:435:20 [INFO] [stdout] | [INFO] [stdout] 435 | " ".repeat(context_pad.max(0)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `context_pad` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_min_or_max [INFO] [stdout] = note: `#[warn(clippy::unnecessary_min_or_max)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/editor_handlers.rs:279:13 [INFO] [stdout] | [INFO] [stdout] 279 | / if !input_prefix::try_handle_prefix(app, c) { [INFO] [stdout] 280 | | // Not a prefix trigger, insert normally [INFO] [stdout] 281 | | app.chat_editor_mut().insert_char(c); [INFO] [stdout] 282 | | app.save_chat_draft(); [INFO] [stdout] 283 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 277 ~ KeyCode::Char(c) [INFO] [stdout] 278 | // Check if this is a prefix trigger (e.g., @ on empty input) [INFO] [stdout] 279 ~ if !input_prefix::try_handle_prefix(app, c) => { [INFO] [stdout] 280 | // Not a prefix trigger, insert normally [INFO] [stdout] 281 | app.chat_editor_mut().insert_char(c); [INFO] [stdout] 282 | app.save_chat_draft(); [INFO] [stdout] 283 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/actions.rs:24:13 [INFO] [stdout] | [INFO] [stdout] 24 | / if state.selected_index > 0 { [INFO] [stdout] 25 | | if let ModalState::ProjectActions(ref mut s) = app.modal_state { [INFO] [stdout] 26 | | s.selected_index -= 1; [INFO] [stdout] 27 | | } [INFO] [stdout] 28 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 23 ~ KeyCode::Up | KeyCode::Char('k') [INFO] [stdout] 24 ~ if state.selected_index > 0 => { [INFO] [stdout] 25 | if let ModalState::ProjectActions(ref mut s) = app.modal_state { [INFO] [stdout] 26 | s.selected_index -= 1; [INFO] [stdout] 27 | } [INFO] [stdout] 28 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/actions.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | / if state.selected_index + 1 < action_count { [INFO] [stdout] 32 | | if let ModalState::ProjectActions(ref mut s) = app.modal_state { [INFO] [stdout] 33 | | s.selected_index += 1; [INFO] [stdout] 34 | | } [INFO] [stdout] 35 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 30 ~ KeyCode::Down | KeyCode::Char('j') [INFO] [stdout] 31 ~ if state.selected_index + 1 < action_count => { [INFO] [stdout] 32 | if let ModalState::ProjectActions(ref mut s) = app.modal_state { [INFO] [stdout] 33 | s.selected_index += 1; [INFO] [stdout] 34 | } [INFO] [stdout] 35 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/actions.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | / if state.selected_index > 0 { [INFO] [stdout] 163 | | if let ModalState::ConversationActions(ref mut s) = app.modal_state { [INFO] [stdout] 164 | | s.selected_index -= 1; [INFO] [stdout] 165 | | } [INFO] [stdout] 166 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 161 ~ KeyCode::Up | KeyCode::Char('k') [INFO] [stdout] 162 ~ if state.selected_index > 0 => { [INFO] [stdout] 163 | if let ModalState::ConversationActions(ref mut s) = app.modal_state { [INFO] [stdout] 164 | s.selected_index -= 1; [INFO] [stdout] 165 | } [INFO] [stdout] 166 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/actions.rs:169:13 [INFO] [stdout] | [INFO] [stdout] 169 | / if state.selected_index + 1 < action_count { [INFO] [stdout] 170 | | if let ModalState::ConversationActions(ref mut s) = app.modal_state { [INFO] [stdout] 171 | | s.selected_index += 1; [INFO] [stdout] 172 | | } [INFO] [stdout] 173 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 168 ~ KeyCode::Down | KeyCode::Char('j') [INFO] [stdout] 169 ~ if state.selected_index + 1 < action_count => { [INFO] [stdout] 170 | if let ModalState::ConversationActions(ref mut s) = app.modal_state { [INFO] [stdout] 171 | s.selected_index += 1; [INFO] [stdout] 172 | } [INFO] [stdout] 173 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/actions.rs:247:13 [INFO] [stdout] | [INFO] [stdout] 247 | / if state.selected_index > 0 { [INFO] [stdout] 248 | | if let ModalState::ChatActions(ref mut s) = app.modal_state { [INFO] [stdout] 249 | | s.selected_index -= 1; [INFO] [stdout] 250 | | } [INFO] [stdout] 251 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 246 ~ KeyCode::Up | KeyCode::Char('k') [INFO] [stdout] 247 ~ if state.selected_index > 0 => { [INFO] [stdout] 248 | if let ModalState::ChatActions(ref mut s) = app.modal_state { [INFO] [stdout] 249 | s.selected_index -= 1; [INFO] [stdout] 250 | } [INFO] [stdout] 251 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/actions.rs:254:13 [INFO] [stdout] | [INFO] [stdout] 254 | / if state.selected_index + 1 < action_count { [INFO] [stdout] 255 | | if let ModalState::ChatActions(ref mut s) = app.modal_state { [INFO] [stdout] 256 | | s.selected_index += 1; [INFO] [stdout] 257 | | } [INFO] [stdout] 258 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 253 ~ KeyCode::Down | KeyCode::Char('j') [INFO] [stdout] 254 ~ if state.selected_index + 1 < action_count => { [INFO] [stdout] 255 | if let ModalState::ChatActions(ref mut s) = app.modal_state { [INFO] [stdout] 256 | s.selected_index += 1; [INFO] [stdout] 257 | } [INFO] [stdout] 258 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/actions.rs:269:13 [INFO] [stdout] | [INFO] [stdout] 269 | / if state.has_parent() { [INFO] [stdout] 270 | | execute_chat_action(app, &state, ChatAction::GoToParent); [INFO] [stdout] 271 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 268 ~ KeyCode::Char('p') [INFO] [stdout] 269 ~ if state.has_parent() => { [INFO] [stdout] 270 | execute_chat_action(app, &state, ChatAction::GoToParent); [INFO] [stdout] 271 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/agent.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 35 | / if state.can_proceed() { [INFO] [stdout] 36 | | state.step = AgentCreateStep::Instructions; [INFO] [stdout] 37 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 34 ~ KeyCode::Enter [INFO] [stdout] 35 ~ if state.can_proceed() => { [INFO] [stdout] 36 | state.step = AgentCreateStep::Instructions; [INFO] [stdout] 37 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/agent.rs:83:17 [INFO] [stdout] | [INFO] [stdout] 83 | / if state.instructions_cursor > 0 { [INFO] [stdout] 84 | | state.instructions_cursor -= 1; [INFO] [stdout] 85 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 82 ~ KeyCode::Left [INFO] [stdout] 83 ~ if state.instructions_cursor > 0 => { [INFO] [stdout] 84 | state.instructions_cursor -= 1; [INFO] [stdout] 85 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/agent.rs:88:17 [INFO] [stdout] | [INFO] [stdout] 88 | / if state.instructions_cursor < state.instructions.len() { [INFO] [stdout] 89 | | state.instructions_cursor += 1; [INFO] [stdout] 90 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 87 ~ KeyCode::Right [INFO] [stdout] 88 ~ if state.instructions_cursor < state.instructions.len() => { [INFO] [stdout] 89 | state.instructions_cursor += 1; [INFO] [stdout] 90 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/agent.rs:152:17 [INFO] [stdout] | [INFO] [stdout] 152 | / if state.instructions_scroll > 0 { [INFO] [stdout] 153 | | state.instructions_scroll -= 1; [INFO] [stdout] 154 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 151 ~ KeyCode::Up [INFO] [stdout] 152 ~ if state.instructions_scroll > 0 => { [INFO] [stdout] 153 | state.instructions_scroll -= 1; [INFO] [stdout] 154 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/agent.rs:272:13 [INFO] [stdout] | [INFO] [stdout] 272 | / if state.focus == AgentConfigFocus::Tools { [INFO] [stdout] 273 | | if let Some(settings) = state.settings.as_mut() { [INFO] [stdout] 274 | | settings.toggle_at_cursor(); [INFO] [stdout] 275 | | } [INFO] [stdout] 276 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 271 ~ KeyCode::Char(' ') [INFO] [stdout] 272 ~ if state.focus == AgentConfigFocus::Tools => { [INFO] [stdout] 273 | if let Some(settings) = state.settings.as_mut() { [INFO] [stdout] 274 | settings.toggle_at_cursor(); [INFO] [stdout] 275 | } [INFO] [stdout] 276 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/backend.rs:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | / if state.selected_index > 0 { [INFO] [stdout] 22 | | if let ModalState::BackendApproval(ref mut s) = app.modal_state { [INFO] [stdout] 23 | | s.selected_index -= 1; [INFO] [stdout] 24 | | } [INFO] [stdout] 25 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 20 ~ KeyCode::Up | KeyCode::Char('k') [INFO] [stdout] 21 ~ if state.selected_index > 0 => { [INFO] [stdout] 22 | if let ModalState::BackendApproval(ref mut s) = app.modal_state { [INFO] [stdout] 23 | s.selected_index -= 1; [INFO] [stdout] 24 | } [INFO] [stdout] 25 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/backend.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | / if state.selected_index + 1 < action_count { [INFO] [stdout] 29 | | if let ModalState::BackendApproval(ref mut s) = app.modal_state { [INFO] [stdout] 30 | | s.selected_index += 1; [INFO] [stdout] 31 | | } [INFO] [stdout] 32 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 27 ~ KeyCode::Down | KeyCode::Char('j') [INFO] [stdout] 28 ~ if state.selected_index + 1 < action_count => { [INFO] [stdout] 29 | if let ModalState::BackendApproval(ref mut s) = app.modal_state { [INFO] [stdout] 30 | s.selected_index += 1; [INFO] [stdout] 31 | } [INFO] [stdout] 32 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/command_palette.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | / if app.tab_modal_index() > 0 { [INFO] [stdout] 78 | | app.set_tab_modal_index(app.tab_modal_index() - 1); [INFO] [stdout] 79 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 76 ~ KeyCode::Up [INFO] [stdout] 77 ~ if app.tab_modal_index() > 0 => { [INFO] [stdout] 78 | app.set_tab_modal_index(app.tab_modal_index() - 1); [INFO] [stdout] 79 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/command_palette.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | / if app.tab_modal_index() + 1 < app.open_tabs().len() { [INFO] [stdout] 83 | | app.set_tab_modal_index(app.tab_modal_index() + 1); [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 81 ~ KeyCode::Down [INFO] [stdout] 82 ~ if app.tab_modal_index() + 1 < app.open_tabs().len() => { [INFO] [stdout] 83 | app.set_tab_modal_index(app.tab_modal_index() + 1); [INFO] [stdout] 84 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/command_palette.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | / if !app.open_tabs().is_empty() { [INFO] [stdout] 96 | | let idx = app.tab_modal_index(); [INFO] [stdout] 97 | | app.close_tab_at(idx); [INFO] [stdout] 98 | | if app.open_tabs().is_empty() { [INFO] [stdout] ... | [INFO] [stdout] 101 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 94 ~ KeyCode::Char('x') [INFO] [stdout] 95 ~ if !app.open_tabs().is_empty() => { [INFO] [stdout] 96 | let idx = app.tab_modal_index(); [INFO] [stdout] ... [INFO] [stdout] 100 | } [INFO] [stdout] 101 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> crates/tenex-tui/src/ui/views/chat/messages.rs:151:57 [INFO] [stdout] | [INFO] [stdout] 151 | for (line, effective_chars) in lines.iter_mut().zip(effective_chars_per_line.into_iter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 151 - for (line, effective_chars) in lines.iter_mut().zip(effective_chars_per_line.into_iter()) { [INFO] [stdout] 151 + for (line, effective_chars) in lines.iter_mut().zip(effective_chars_per_line) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/nudge.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 114 | filtered.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 114 - filtered.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 114 + filtered.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/nudge.rs:191:21 [INFO] [stdout] | [INFO] [stdout] 191 | / if state.can_proceed() { [INFO] [stdout] 192 | | state.next_step(); [INFO] [stdout] 193 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 189 ~ KeyCode::Tab [INFO] [stdout] 190 | // Tab to proceed to next step [INFO] [stdout] 191 ~ if state.can_proceed() => { [INFO] [stdout] 192 | state.next_step(); [INFO] [stdout] 193 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/nudge.rs:293:33 [INFO] [stdout] | [INFO] [stdout] 293 | / ... if !state.get_configured_tools().is_empty() { [INFO] [stdout] 294 | | ... state.selecting_configured = true; [INFO] [stdout] 295 | | ... state.configured_tool_index = 0; [INFO] [stdout] 296 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 292 ~ KeyCode::Char('x') [INFO] [stdout] 293 ~ if !state.get_configured_tools().is_empty() => { [INFO] [stdout] 294 | state.selecting_configured = true; [INFO] [stdout] 295 | state.configured_tool_index = 0; [INFO] [stdout] 296 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/nudge.rs:339:29 [INFO] [stdout] | [INFO] [stdout] 339 | / ... if state.tool_index > 0 { [INFO] [stdout] 340 | | ... state.tool_index -= 1; [INFO] [stdout] 341 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 338 ~ KeyCode::Up [INFO] [stdout] 339 ~ if state.tool_index > 0 => { [INFO] [stdout] 340 | state.tool_index -= 1; [INFO] [stdout] 341 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/nudge.rs:449:21 [INFO] [stdout] | [INFO] [stdout] 449 | / if state.review_scroll > 0 { [INFO] [stdout] 450 | | state.review_scroll -= 1; [INFO] [stdout] 451 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 448 ~ KeyCode::Up [INFO] [stdout] 449 ~ if state.review_scroll > 0 => { [INFO] [stdout] 450 | state.review_scroll -= 1; [INFO] [stdout] 451 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/search.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | / if app.search_index > 0 { [INFO] [stdout] 75 | | app.search_index -= 1; [INFO] [stdout] 76 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 73 ~ KeyCode::Up [INFO] [stdout] 74 ~ if app.search_index > 0 => { [INFO] [stdout] 75 | app.search_index -= 1; [INFO] [stdout] 76 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/selectors.rs:227:17 [INFO] [stdout] | [INFO] [stdout] 227 | / if state.selector.index > 0 { [INFO] [stdout] 228 | | state.selector.index -= 1; [INFO] [stdout] 229 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 226 ~ KeyCode::Up [INFO] [stdout] 227 ~ if state.selector.index > 0 => { [INFO] [stdout] 228 | state.selector.index -= 1; [INFO] [stdout] 229 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/selectors.rs:232:17 [INFO] [stdout] | [INFO] [stdout] 232 | / if item_count > 0 && state.selector.index < item_count - 1 { [INFO] [stdout] 233 | | state.selector.index += 1; [INFO] [stdout] 234 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 231 ~ KeyCode::Down [INFO] [stdout] 232 ~ if item_count > 0 && state.selector.index < item_count - 1 => { [INFO] [stdout] 233 | state.selector.index += 1; [INFO] [stdout] 234 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/view.rs:104:17 [INFO] [stdout] | [INFO] [stdout] 104 | / if state.show_threads { [INFO] [stdout] 105 | | state.focus = ReportViewerFocus::Threads; [INFO] [stdout] 106 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 103 ~ KeyCode::Char('l') | KeyCode::Right [INFO] [stdout] 104 ~ if state.show_threads => { [INFO] [stdout] 105 | state.focus = ReportViewerFocus::Threads; [INFO] [stdout] 106 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/view.rs:130:17 [INFO] [stdout] | [INFO] [stdout] 130 | / if state.version_index > 0 { [INFO] [stdout] 131 | | state.version_index -= 1; [INFO] [stdout] 132 | | let slug = state.report.slug.clone(); [INFO] [stdout] 133 | | let versions = app [INFO] [stdout] ... | [INFO] [stdout] 145 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 129 ~ KeyCode::Char(']') [INFO] [stdout] 130 ~ if state.version_index > 0 => { [INFO] [stdout] 131 | state.version_index -= 1; [INFO] [stdout] ... [INFO] [stdout] 144 | } [INFO] [stdout] 145 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/view.rs:208:17 [INFO] [stdout] | [INFO] [stdout] 208 | / if state.focus == ReportViewerFocus::Threads || state.show_threads { [INFO] [stdout] 209 | | app.set_warning_status("Thread creation not yet implemented"); [INFO] [stdout] 210 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 207 ~ KeyCode::Char('n') [INFO] [stdout] 208 ~ if (state.focus == ReportViewerFocus::Threads || state.show_threads) => { [INFO] [stdout] 209 | app.set_warning_status("Thread creation not yet implemented"); [INFO] [stdout] 210 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/view.rs:281:17 [INFO] [stdout] | [INFO] [stdout] 281 | / if c.is_ascii_hexdigit() { [INFO] [stdout] 282 | | if let ModalState::DebugStats(ref mut state) = app.modal_state { [INFO] [stdout] 283 | | if state.e_tag_query_input.len() < 64 { [INFO] [stdout] 284 | | state.e_tag_query_input.push(c.to_ascii_lowercase()); [INFO] [stdout] ... | [INFO] [stdout] 287 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 279 ~ KeyCode::Char(c) [INFO] [stdout] 280 | // Accept hex characters directly - this is the main input handler [INFO] [stdout] 281 ~ if c.is_ascii_hexdigit() => { [INFO] [stdout] 282 | if let ModalState::DebugStats(ref mut state) = app.modal_state { [INFO] [stdout] ... [INFO] [stdout] 286 | } [INFO] [stdout] 287 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/workspace.rs:72:21 [INFO] [stdout] | [INFO] [stdout] 72 | / if !workspaces.is_empty() { [INFO] [stdout] 73 | | state.enter_delete_mode(); [INFO] [stdout] 74 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 70 ~ KeyCode::Char('d') [INFO] [stdout] 71 | // Delete selected workspace [INFO] [stdout] 72 ~ if !workspaces.is_empty() => { [INFO] [stdout] 73 | state.enter_delete_mode(); [INFO] [stdout] 74 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/workspace.rs:117:21 [INFO] [stdout] | [INFO] [stdout] 117 | / if state.project_selector_index > 0 { [INFO] [stdout] 118 | | state.project_selector_index -= 1; [INFO] [stdout] 119 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 116 ~ KeyCode::Up | KeyCode::Char('k') if state.focus == WorkspaceFocus::Projects [INFO] [stdout] 117 ~ && state.project_selector_index > 0 => { [INFO] [stdout] 118 | state.project_selector_index -= 1; [INFO] [stdout] 119 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/workspace.rs:122:21 [INFO] [stdout] | [INFO] [stdout] 122 | / if state.project_selector_index + 1 < project_count { [INFO] [stdout] 123 | | state.project_selector_index += 1; [INFO] [stdout] 124 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 121 ~ KeyCode::Down | KeyCode::Char('j') if state.focus == WorkspaceFocus::Projects [INFO] [stdout] 122 ~ && state.project_selector_index + 1 < project_count => { [INFO] [stdout] 123 | state.project_selector_index += 1; [INFO] [stdout] 124 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/workspace.rs:133:21 [INFO] [stdout] | [INFO] [stdout] 133 | / if state.can_save() { [INFO] [stdout] 134 | | // Save workspace [INFO] [stdout] 135 | | let name = state.editing_name.clone(); [INFO] [stdout] 136 | | let project_ids: Vec = [INFO] [stdout] ... | [INFO] [stdout] 161 | | return; [INFO] [stdout] 162 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 132 ~ KeyCode::Enter [INFO] [stdout] 133 ~ if state.can_save() => { [INFO] [stdout] 134 | // Save workspace [INFO] [stdout] ... [INFO] [stdout] 161 | return; [INFO] [stdout] 162 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/modal_handlers/workspace.rs:676:13 [INFO] [stdout] | [INFO] [stdout] 676 | / if state.current_tab == ui::modal::SettingsTab::AI { [INFO] [stdout] 677 | | match state.selected_ai_setting() { [INFO] [stdout] 678 | | Some(ui::modal::AiSetting::ElevenLabsApiKey) => { [INFO] [stdout] 679 | | if state.ai.elevenlabs_key_exists { [INFO] [stdout] ... | [INFO] [stdout] 738 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 674 ~ KeyCode::Delete if !state.editing [INFO] [stdout] 675 | // Delete/clear settings when not editing [INFO] [stdout] 676 ~ && state.current_tab == ui::modal::SettingsTab::AI => { [INFO] [stdout] 677 | match state.selected_ai_setting() { [INFO] [stdout] ... [INFO] [stdout] 737 | } [INFO] [stdout] 738 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:645:13 [INFO] [stdout] | [INFO] [stdout] 645 | / if !app.report_search_filter.is_empty() { [INFO] [stdout] 646 | | app.report_search_filter.clear(); [INFO] [stdout] 647 | | app.tab_selection.insert(HomeTab::Reports, 0); [INFO] [stdout] 648 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 644 ~ KeyCode::Esc if app.home_panel_focus == HomeTab::Reports [INFO] [stdout] 645 ~ && !app.report_search_filter.is_empty() => { [INFO] [stdout] 646 | app.report_search_filter.clear(); [INFO] [stdout] 647 | app.tab_selection.insert(HomeTab::Reports, 0); [INFO] [stdout] 648 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:729:17 [INFO] [stdout] | [INFO] [stdout] 729 | / if state.add_index > 0 { [INFO] [stdout] 730 | | state.add_index -= 1; [INFO] [stdout] 731 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 728 ~ KeyCode::Up [INFO] [stdout] 729 ~ if state.add_index > 0 => { [INFO] [stdout] 730 | state.add_index -= 1; [INFO] [stdout] 731 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:898:17 [INFO] [stdout] | [INFO] [stdout] 898 | / if state.focus == ProjectSettingsFocus::Agents [INFO] [stdout] 899 | | && !state.pending_agent_definition_ids.is_empty() [INFO] [stdout] 900 | | && state.selector_index > 0 [INFO] [stdout] ... | [INFO] [stdout] 904 | | state.agents_scroll_offset = 0; [INFO] [stdout] 905 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 896 ~ KeyCode::Char('p') [INFO] [stdout] 897 | // Set PM only works in agents pane [INFO] [stdout] ... [INFO] [stdout] 900 | && state.selector_index > 0 [INFO] [stdout] 901 ~ => { [INFO] [stdout] 902 | state.set_pm(state.selector_index); [INFO] [stdout] 903 | state.selector_index = 0; [INFO] [stdout] 904 | state.agents_scroll_offset = 0; [INFO] [stdout] 905 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:908:17 [INFO] [stdout] | [INFO] [stdout] 908 | / if state.has_changes() { [INFO] [stdout] 909 | | let project_a_tag = state.project_a_tag.clone(); [INFO] [stdout] 910 | | let agent_definition_ids = state.pending_agent_definition_ids.clone(); [INFO] [stdout] 911 | | let mcp_tool_ids = state.pending_mcp_tool_ids.clone(); [INFO] [stdout] ... | [INFO] [stdout] 926 | | return; [INFO] [stdout] 927 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 907 ~ KeyCode::Enter [INFO] [stdout] 908 ~ if state.has_changes() => { [INFO] [stdout] 909 | let project_a_tag = state.project_a_tag.clone(); [INFO] [stdout] ... [INFO] [stdout] 926 | return; [INFO] [stdout] 927 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:962:17 [INFO] [stdout] | [INFO] [stdout] 962 | / if state.can_proceed() { [INFO] [stdout] 963 | | state.step = CreateProjectStep::SelectAgents; [INFO] [stdout] 964 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 961 ~ KeyCode::Enter [INFO] [stdout] 962 ~ if state.can_proceed() => { [INFO] [stdout] 963 | state.step = CreateProjectStep::SelectAgents; [INFO] [stdout] 964 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:997:21 [INFO] [stdout] | [INFO] [stdout] 997 | / if state.agent_selector.index > 0 { [INFO] [stdout] 998 | | state.agent_selector.index -= 1; [INFO] [stdout] 999 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 996 ~ KeyCode::Up [INFO] [stdout] 997 ~ if state.agent_selector.index > 0 => { [INFO] [stdout] 998 | state.agent_selector.index -= 1; [INFO] [stdout] 999 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1002:21 [INFO] [stdout] | [INFO] [stdout] 1002 | / if item_count > 0 && state.agent_selector.index + 1 < item_count { [INFO] [stdout] 1003 | | state.agent_selector.index += 1; [INFO] [stdout] 1004 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1001 ~ KeyCode::Down [INFO] [stdout] 1002 ~ if item_count > 0 && state.agent_selector.index + 1 < item_count => { [INFO] [stdout] 1003 | state.agent_selector.index += 1; [INFO] [stdout] 1004 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1041:21 [INFO] [stdout] | [INFO] [stdout] 1041 | / if state.tool_selector.index > 0 { [INFO] [stdout] 1042 | | state.tool_selector.index -= 1; [INFO] [stdout] 1043 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1040 ~ KeyCode::Up [INFO] [stdout] 1041 ~ if state.tool_selector.index > 0 => { [INFO] [stdout] 1042 | state.tool_selector.index -= 1; [INFO] [stdout] 1043 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1046:21 [INFO] [stdout] | [INFO] [stdout] 1046 | / if item_count > 0 && state.tool_selector.index + 1 < item_count { [INFO] [stdout] 1047 | | state.tool_selector.index += 1; [INFO] [stdout] 1048 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1045 ~ KeyCode::Down [INFO] [stdout] 1046 ~ if item_count > 0 && state.tool_selector.index + 1 < item_count => { [INFO] [stdout] 1047 | state.tool_selector.index += 1; [INFO] [stdout] 1048 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1294:13 [INFO] [stdout] | [INFO] [stdout] 1294 | / if app.view == View::AgentBrowser && !app.home.in_agent_detail() { [INFO] [stdout] 1295 | | app.home.backspace_filter(); [INFO] [stdout] 1296 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1293 ~ KeyCode::Backspace [INFO] [stdout] 1294 ~ if app.view == View::AgentBrowser && !app.home.in_agent_detail() => { [INFO] [stdout] 1295 | app.home.backspace_filter(); [INFO] [stdout] 1296 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1342:13 [INFO] [stdout] | [INFO] [stdout] 1342 | / if app.view == View::Chat { [INFO] [stdout] 1343 | | app.scroll_offset = 0; [INFO] [stdout] 1344 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1341 ~ KeyCode::Home [INFO] [stdout] 1342 ~ if app.view == View::Chat => { [INFO] [stdout] 1343 | app.scroll_offset = 0; [INFO] [stdout] 1344 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1347:13 [INFO] [stdout] | [INFO] [stdout] 1347 | / if app.view == View::Chat { [INFO] [stdout] 1348 | | app.scroll_to_bottom(); [INFO] [stdout] 1349 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1346 ~ KeyCode::End [INFO] [stdout] 1347 ~ if app.view == View::Chat => { [INFO] [stdout] 1348 | app.scroll_to_bottom(); [INFO] [stdout] 1349 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1352:13 [INFO] [stdout] | [INFO] [stdout] 1352 | / if app.view == View::Chat { [INFO] [stdout] 1353 | | app.scroll_up(20); [INFO] [stdout] 1354 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1351 ~ KeyCode::PageUp [INFO] [stdout] 1352 ~ if app.view == View::Chat => { [INFO] [stdout] 1353 | app.scroll_up(20); [INFO] [stdout] 1354 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1357:13 [INFO] [stdout] | [INFO] [stdout] 1357 | / if app.view == View::Chat { [INFO] [stdout] 1358 | | app.scroll_down(20); [INFO] [stdout] 1359 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1356 ~ KeyCode::PageDown [INFO] [stdout] 1357 ~ if app.view == View::Chat => { [INFO] [stdout] 1358 | app.scroll_down(20); [INFO] [stdout] 1359 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1301:17 [INFO] [stdout] | [INFO] [stdout] 1301 | / if app.selected_message_index() > 0 { [INFO] [stdout] 1302 | | app.set_selected_message_index(app.selected_message_index() - 1); [INFO] [stdout] 1303 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1299 ~ View::Chat [INFO] [stdout] 1300 | // Simple navigation - expanded groups are flattened so each item is selectable [INFO] [stdout] 1301 ~ if app.selected_message_index() > 0 => { [INFO] [stdout] 1302 | app.set_selected_message_index(app.selected_message_index() - 1); [INFO] [stdout] 1303 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1366:17 [INFO] [stdout] | [INFO] [stdout] 1366 | / if !app.home.in_agent_detail() { [INFO] [stdout] 1367 | | let agents = app.filtered_agent_definitions(); [INFO] [stdout] 1368 | | if let Some(agent) = agents.get(app.home.agent_browser_index) { [INFO] [stdout] 1369 | | app.home.enter_agent_detail(agent.id.clone()); [INFO] [stdout] ... | [INFO] [stdout] 1372 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1365 ~ View::AgentBrowser [INFO] [stdout] 1366 ~ if !app.home.in_agent_detail() => { [INFO] [stdout] 1367 | let agents = app.filtered_agent_definitions(); [INFO] [stdout] ... [INFO] [stdout] 1371 | } [INFO] [stdout] 1372 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1414:81 [INFO] [stdout] | [INFO] [stdout] 1414 | if c == 'a' && app.view == View::Chat && !app.available_agents().is_empty() { [INFO] [stdout] | _________________________________________________________________________________^ [INFO] [stdout] 1415 | | app.open_agent_config_modal(); [INFO] [stdout] 1416 | | } else if c == '@' && app.view == View::Chat && !app.available_agents().is_empty() { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> crates/tenex-tui/src/input/view_handlers.rs:1416:88 [INFO] [stdout] | [INFO] [stdout] 1416 | } else if c == '@' && app.view == View::Chat && !app.available_agents().is_empty() { [INFO] [stdout] | ________________________________________________________________________________________^ [INFO] [stdout] 1417 | | app.open_agent_config_modal(); [INFO] [stdout] 1418 | | } else if c == '.' && app.view == View::Chat { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/ui/views/debug_stats.rs:911:9 [INFO] [stdout] | [INFO] [stdout] 911 | project_counts.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 911 - project_counts.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 911 + project_counts.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual checked division [INFO] [stdout] --> crates/tenex-tui/src/runtime.rs:169:20 [INFO] [stdout] | [INFO] [stdout] 169 | if elapsed > 0 { loop_count / elapsed } else { loop_count }, [INFO] [stdout] | ^^^^^^^^^^^ -------------------- division performed here [INFO] [stdout] | | [INFO] [stdout] | check performed here [INFO] [stdout] | [INFO] [stdout] = help: consider using `checked_div` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_checked_ops [INFO] [stdout] = note: `#[warn(clippy::manual_checked_ops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/runtime.rs:236:29 [INFO] [stdout] | [INFO] [stdout] 236 | / ... if app.view == View::Chat { [INFO] [stdout] 237 | | ... match mouse.kind { [INFO] [stdout] 238 | | ... MouseEventKind::ScrollUp => { [INFO] [stdout] 239 | | ... app.scroll_up(3); [INFO] [stdout] ... | [INFO] [stdout] 246 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 234 ~ Event::Mouse(mouse) [INFO] [stdout] 235 | // Handle mouse scroll in Chat view [INFO] [stdout] 236 ~ if app.view == View::Chat => { [INFO] [stdout] 237 | match mouse.kind { [INFO] [stdout] ... [INFO] [stdout] 245 | } [INFO] [stdout] 246 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> crates/tenex-tui/src/runtime.rs:223:40 [INFO] [stdout] | [INFO] [stdout] 223 | ... if app.last_esc_time.map_or(false, |t| t.elapsed() < Duration::from_secs(2)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 223 - if app.last_esc_time.map_or(false, |t| t.elapsed() < Duration::from_secs(2)) { [INFO] [stdout] 223 + if app.last_esc_time.is_some_and(|t| t.elapsed() < Duration::from_secs(2)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> crates/tenex-tui/src/ui/views/history_search.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | /// Falls back to single-pane list-only view when terminal is too small. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 22 | /// Falls back to single-pane list-only view when terminal is too small. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> crates/tenex-tui/src/ui/views/home/content.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | (wrapped.len() as u16).min(4).max(1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `(wrapped.len() as u16).clamp(1, 4)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (14/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/views/home/content.rs:224:1 [INFO] [stdout] | [INFO] [stdout] 224 | / fn render_card_content( [INFO] [stdout] 225 | | f: &mut Frame, [INFO] [stdout] 226 | | app: &App, [INFO] [stdout] 227 | | thread: &Thread, [INFO] [stdout] ... | [INFO] [stdout] 238 | | area: Rect, [INFO] [stdout] 239 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> crates/tenex-tui/src/ui/views/home/content.rs:291:29 [INFO] [stdout] | [INFO] [stdout] 291 | let cross_project = parent_a_tag.map_or(true, |p| p != a_tag); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use a standard comparison instead [INFO] [stdout] | [INFO] [stdout] 291 - let cross_project = parent_a_tag.map_or(true, |p| p != a_tag); [INFO] [stdout] 291 + let cross_project = parent_a_tag != Some(a_tag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/ui/app.rs:3286:9 [INFO] [stdout] | [INFO] [stdout] 3286 | results.sort_by(|a, b| b.thread.last_activity.cmp(&a.thread.last_activity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 3286 - results.sort_by(|a, b| b.thread.last_activity.cmp(&a.thread.last_activity)); [INFO] [stdout] 3286 + results.sort_by_key(|b| std::cmp::Reverse(b.thread.last_activity)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `results` [INFO] [stdout] --> crates/tenex-tui/src/ui/views/home/sidebar.rs:146:14 [INFO] [stdout] | [INFO] [stdout] 146 | for i in 0..=selected_idx.min(results.len().saturating_sub(1)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 146 - for i in 0..=selected_idx.min(results.len().saturating_sub(1)) { [INFO] [stdout] 146 + for (i, ) in results.iter().enumerate().take(selected_idx.min(results.len().saturating_sub(1)) + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/app.rs:3693:9 [INFO] [stdout] | [INFO] [stdout] 3693 | / fn try_add_chat_draft( [INFO] [stdout] 3694 | | drafts_by_id: &mut std::collections::HashMap, u64)>, [INFO] [stdout] 3695 | | conversation_id: &str, [INFO] [stdout] 3696 | | text: &str, [INFO] [stdout] ... | [INFO] [stdout] 3702 | | text_matches_terms_fn: fn(&str, &[String]) -> bool, [INFO] [stdout] 3703 | | ) -> bool { [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/ui/app.rs:3824:9 [INFO] [stdout] | [INFO] [stdout] 3824 | entries.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 3824 - entries.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 3824 + entries.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> crates/tenex-tui/src/ui/app.rs:3877:13 [INFO] [stdout] | [INFO] [stdout] 3877 | / if let DisplayItem::DelegationPreview { [INFO] [stdout] 3878 | | thread_id: delegation_thread_id, [INFO] [stdout] 3879 | | .. [INFO] [stdout] 3880 | | } = item [INFO] [stdout] 3881 | | { [INFO] [stdout] 3882 | | return Some(delegation_thread_id.clone()); [INFO] [stdout] 3883 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> crates/tenex-tui/src/ui/app.rs:3876:21 [INFO] [stdout] | [INFO] [stdout] 3876 | if let Some(item) = grouped.get(self.conversation.selected_message_index) { [INFO] [stdout] | ^^^^ replace this binding [INFO] [stdout] 3877 | if let DisplayItem::DelegationPreview { [INFO] [stdout] | ____________________^ [INFO] [stdout] 3878 | | thread_id: delegation_thread_id, [INFO] [stdout] 3879 | | .. [INFO] [stdout] 3880 | | } = item [INFO] [stdout] | |_____________^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/tenex-tui/src/ui/app.rs:4137:40 [INFO] [stdout] | [INFO] [stdout] 4137 | self.notify(Notification::info(&format!( [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 4138 | | "Scheduled events: {}", [INFO] [stdout] 4139 | | new_filter.label() [INFO] [stdout] 4140 | | ))); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 4137 ~ self.notify(Notification::info(format!( [INFO] [stdout] 4138 + "Scheduled events: {}", [INFO] [stdout] 4139 + new_filter.label() [INFO] [stdout] 4140 ~ ))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/ui/app.rs:4307:9 [INFO] [stdout] | [INFO] [stdout] 4307 | entries.sort_by(|a, b| b.completed_at_ms.cmp(&a.completed_at_ms)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 4307 - entries.sort_by(|a, b| b.completed_at_ms.cmp(&a.completed_at_ms)); [INFO] [stdout] 4307 + entries.sort_by_key(|b| std::cmp::Reverse(b.completed_at_ms)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> crates/tenex-tui/src/ui/views/home_helpers.rs:100:16 [INFO] [stdout] | [INFO] [stdout] 100 | a_tag: &String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 100 ~ a_tag: &str, [INFO] [stdout] 101 | depth: usize, [INFO] [stdout] ... [INFO] [stdout] 123 | thread: thread.clone(), [INFO] [stdout] 124 ~ a_tag: a_tag.to_owned(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual checked division [INFO] [stdout] --> crates/tenex-tui/src/ui/components/chat_sidebar.rs:373:21 [INFO] [stdout] | [INFO] [stdout] 373 | let filled = if total > 0 { [INFO] [stdout] | ^^^^^^^^^ check performed here [INFO] [stdout] 374 | (completed * content_width) / total [INFO] [stdout] | ----------------------------------- division performed here [INFO] [stdout] | [INFO] [stdout] = help: consider using `checked_div` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_checked_ops [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual checked division [INFO] [stdout] --> crates/tenex-tui/src/ui/views/lesson_viewer.rs:117:33 [INFO] [stdout] | [INFO] [stdout] 117 | let scroll_percent = if max_scroll > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ check performed here [INFO] [stdout] 118 | (scroll_offset * 100) / max_scroll [INFO] [stdout] | ---------------------------------- division performed here [INFO] [stdout] | [INFO] [stdout] = help: consider using `checked_div` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_checked_ops [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> crates/tenex-tui/src/ui/views/login.rs:42:75 [INFO] [stdout] | [INFO] [stdout] 42 | } else if *login_step == LoginStep::Password && !app.input.is_empty() { [INFO] [stdout] | ___________________________________________________________________________^ [INFO] [stdout] 43 | | "*".repeat(app.input.len()) [INFO] [stdout] 44 | | } else if *login_step == LoginStep::Unlock && !app.input.is_empty() { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> crates/tenex-tui/src/ui/views/login.rs:44:73 [INFO] [stdout] | [INFO] [stdout] 44 | } else if *login_step == LoginStep::Unlock && !app.input.is_empty() { [INFO] [stdout] | _________________________________________________________________________^ [INFO] [stdout] 45 | | "*".repeat(app.input.len()) [INFO] [stdout] 46 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> crates/tenex-tui/src/ui/components/statusbar.rs:83:31 [INFO] [stdout] | [INFO] [stdout] 83 | let agent_count_clamped = active_agent_count.max(1).min(10) as f32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `active_agent_count.clamp(1, 10)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> crates/tenex-tui/src/ui/components/statusbar.rs:106:17 [INFO] [stdout] | [INFO] [stdout] 106 | let r = ((WAVE_BASE_COLOR_R as f32 * brightness).min(255.0).max(0.0)) as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `(WAVE_BASE_COLOR_R as f32 * brightness).clamp(0.0, 255.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> crates/tenex-tui/src/ui/components/statusbar.rs:107:17 [INFO] [stdout] | [INFO] [stdout] 107 | let g = ((WAVE_BASE_COLOR_G as f32 * brightness).min(255.0).max(0.0)) as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `(WAVE_BASE_COLOR_G as f32 * brightness).clamp(0.0, 255.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> crates/tenex-tui/src/ui/components/statusbar.rs:108:17 [INFO] [stdout] | [INFO] [stdout] 108 | let b = ((WAVE_BASE_COLOR_B as f32 * brightness).min(255.0).max(0.0)) as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `(WAVE_BASE_COLOR_B as f32 * brightness).clamp(0.0, 255.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/views/project_settings.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | / fn render_side_by_side_layout( [INFO] [stdout] 87 | | f: &mut Frame, [INFO] [stdout] 88 | | app: &App, [INFO] [stdout] 89 | | remaining: Rect, [INFO] [stdout] ... | [INFO] [stdout] 94 | | tools_focused: bool, [INFO] [stdout] 95 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/components/statusbar.rs:132:1 [INFO] [stdout] | [INFO] [stdout] 132 | / pub fn render_statusbar( [INFO] [stdout] 133 | | f: &mut Frame, [INFO] [stdout] 134 | | area: Rect, [INFO] [stdout] 135 | | current_notification: Option<&Notification>, [INFO] [stdout] ... | [INFO] [stdout] 140 | | audio_playing: bool, [INFO] [stdout] 141 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/views/project_settings.rs:182:1 [INFO] [stdout] | [INFO] [stdout] 182 | / fn render_single_pane_layout( [INFO] [stdout] 183 | | f: &mut Frame, [INFO] [stdout] 184 | | app: &App, [INFO] [stdout] 185 | | remaining: Rect, [INFO] [stdout] ... | [INFO] [stdout] 190 | | tools_focused: bool, [INFO] [stdout] 191 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/ui/hotkeys.rs:707:9 [INFO] [stdout] | [INFO] [stdout] 707 | bindings.sort_by(|a, b| b.priority.cmp(&a.priority)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 707 - bindings.sort_by(|a, b| b.priority.cmp(&a.priority)); [INFO] [stdout] 707 + bindings.sort_by_key(|b| std::cmp::Reverse(b.priority)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/ui/markdown.rs:352:17 [INFO] [stdout] | [INFO] [stdout] 352 | / if !current_line.is_empty() { [INFO] [stdout] 353 | | lines.push(Line::from(current_line.clone())); [INFO] [stdout] 354 | | current_line.clear(); [INFO] [stdout] 355 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 351 ~ Event::SoftBreak | Event::HardBreak [INFO] [stdout] 352 ~ if !current_line.is_empty() => { [INFO] [stdout] 353 | lines.push(Line::from(current_line.clone())); [INFO] [stdout] 354 | current_line.clear(); [INFO] [stdout] 355 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/ui/markdown.rs:156:21 [INFO] [stdout] | [INFO] [stdout] 156 | / if !current_line.is_empty() { [INFO] [stdout] 157 | | lines.push(Line::from(current_line.clone())); [INFO] [stdout] 158 | | current_line.clear(); [INFO] [stdout] 159 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 155 ~ TagEnd::Item [INFO] [stdout] 156 ~ if !current_line.is_empty() => { [INFO] [stdout] 157 | lines.push(Line::from(current_line.clone())); [INFO] [stdout] 158 | current_line.clear(); [INFO] [stdout] 159 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/ui/markdown.rs:307:21 [INFO] [stdout] | [INFO] [stdout] 307 | / if !current_table_row.is_empty() { [INFO] [stdout] 308 | | table_rows.push(current_table_row.clone()); [INFO] [stdout] 309 | | current_table_row.clear(); [INFO] [stdout] 310 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 306 ~ TagEnd::TableHead [INFO] [stdout] 307 ~ if !current_table_row.is_empty() => { [INFO] [stdout] 308 | table_rows.push(current_table_row.clone()); [INFO] [stdout] 309 | current_table_row.clear(); [INFO] [stdout] 310 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/tenex-tui/src/ui/markdown.rs:313:21 [INFO] [stdout] | [INFO] [stdout] 313 | / if !current_table_row.is_empty() { [INFO] [stdout] 314 | | table_rows.push(current_table_row.clone()); [INFO] [stdout] 315 | | current_table_row.clear(); [INFO] [stdout] 316 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 312 ~ TagEnd::TableRow [INFO] [stdout] 313 ~ if !current_table_row.is_empty() => { [INFO] [stdout] 314 | table_rows.push(current_table_row.clone()); [INFO] [stdout] 315 | current_table_row.clear(); [INFO] [stdout] 316 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `hour` is only used to index `grid` [INFO] [stdout] --> crates/tenex-tui/src/ui/views/stats.rs:918:21 [INFO] [stdout] | [INFO] [stdout] 918 | for hour in 0..HOURS_PER_DAY { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 918 - for hour in 0..HOURS_PER_DAY { [INFO] [stdout] 918 + for in grid.iter().take(HOURS_PER_DAY) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/nudge/views/create_form.rs:751:1 [INFO] [stdout] | [INFO] [stdout] 751 | / fn render_permission_column( [INFO] [stdout] 752 | | f: &mut Frame, [INFO] [stdout] 753 | | area: Rect, [INFO] [stdout] 754 | | title: &str, [INFO] [stdout] ... | [INFO] [stdout] 759 | | column_type: &str, // "allow" or "deny" [INFO] [stdout] 760 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `y` is used as a loop counter [INFO] [stdout] --> crates/tenex-tui/src/ui/nudge/views/create_form.rs:1029:5 [INFO] [stdout] | [INFO] [stdout] 1029 | for error in &errors { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (y, error) in (area.y..).zip(errors.iter())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/ui/nudge/views/list_view.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | filtered.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 79 - filtered.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 79 + filtered.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/ui/search.rs:250:5 [INFO] [stdout] | [INFO] [stdout] 250 | results.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 250 - results.sort_by(|a, b| b.created_at.cmp(&a.created_at)); [INFO] [stdout] 250 + results.sort_by_key(|b| std::cmp::Reverse(b.created_at)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get("conv-123").is_none()` [INFO] [stdout] --> crates/tenex-tui/src/ui/state.rs:1472:44 [INFO] [stdout] | [INFO] [stdout] 1472 | assert!(state.local_stream_buffers.get("conv-123").is_none()); [INFO] [stdout] | ---------------------------^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!state.local_stream_buffers.contains_key("conv-123")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get("conv-123").is_none()` [INFO] [stdout] --> crates/tenex-tui/src/ui/state.rs:1520:44 [INFO] [stdout] | [INFO] [stdout] 1520 | assert!(state.local_stream_buffers.get("conv-123").is_none()); [INFO] [stdout] | ---------------------------^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!state.local_stream_buffers.contains_key("conv-123")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual checked division [INFO] [stdout] --> crates/tenex-tui/src/ui/views/agent_browser.rs:430:33 [INFO] [stdout] | [INFO] [stdout] 430 | let scroll_percent = if max_scroll > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ check performed here [INFO] [stdout] 431 | (scroll_offset * 100) / max_scroll [INFO] [stdout] | ---------------------------------- division performed here [INFO] [stdout] | [INFO] [stdout] = help: consider using `checked_div` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_checked_ops [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/views/app_settings.rs:382:1 [INFO] [stdout] | [INFO] [stdout] 382 | / fn render_select_field( [INFO] [stdout] 383 | | f: &mut Frame, [INFO] [stdout] 384 | | x: u16, [INFO] [stdout] 385 | | y: u16, [INFO] [stdout] ... | [INFO] [stdout] 390 | | is_selected: bool, [INFO] [stdout] 391 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/views/app_settings.rs:439:1 [INFO] [stdout] | [INFO] [stdout] 439 | / fn render_toggle_row( [INFO] [stdout] 440 | | f: &mut Frame, [INFO] [stdout] 441 | | x: u16, [INFO] [stdout] 442 | | y: u16, [INFO] [stdout] ... | [INFO] [stdout] 447 | | is_selected: bool, [INFO] [stdout] 448 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/views/app_settings.rs:490:1 [INFO] [stdout] | [INFO] [stdout] 490 | / fn render_text_setting_row( [INFO] [stdout] 491 | | f: &mut Frame, [INFO] [stdout] 492 | | x: u16, [INFO] [stdout] 493 | | y: u16, [INFO] [stdout] ... | [INFO] [stdout] 499 | | is_editing: bool, [INFO] [stdout] 500 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/views/app_settings.rs:552:1 [INFO] [stdout] | [INFO] [stdout] 552 | / fn render_api_key_row( [INFO] [stdout] 553 | | f: &mut Frame, [INFO] [stdout] 554 | | x: u16, [INFO] [stdout] 555 | | y: u16, [INFO] [stdout] ... | [INFO] [stdout] 562 | | key_exists_in_storage: bool, [INFO] [stdout] 563 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `char_count` is used as a loop counter [INFO] [stdout] --> crates/tenex-tui/src/ui/views/chat/cards.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | for (i, _) in text.char_indices() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (char_count, (i, _)) in text.char_indices().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `context_pad` is never smaller than `0` and has therefore no effect [INFO] [stdout] --> crates/tenex-tui/src/ui/views/chat/input.rs:435:20 [INFO] [stdout] | [INFO] [stdout] 435 | " ".repeat(context_pad.max(0)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `context_pad` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_min_or_max [INFO] [stdout] = note: `#[warn(clippy::unnecessary_min_or_max)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> crates/tenex-tui/src/ui/views/chat/messages.rs:151:57 [INFO] [stdout] | [INFO] [stdout] 151 | for (line, effective_chars) in lines.iter_mut().zip(effective_chars_per_line.into_iter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 151 - for (line, effective_chars) in lines.iter_mut().zip(effective_chars_per_line.into_iter()) { [INFO] [stdout] 151 + for (line, effective_chars) in lines.iter_mut().zip(effective_chars_per_line) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/tenex-tui/src/ui/views/debug_stats.rs:911:9 [INFO] [stdout] | [INFO] [stdout] 911 | project_counts.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 911 - project_counts.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 911 + project_counts.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> crates/tenex-tui/src/ui/views/history_search.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | /// Falls back to single-pane list-only view when terminal is too small. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 22 | /// Falls back to single-pane list-only view when terminal is too small. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> crates/tenex-tui/src/ui/views/home/content.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | (wrapped.len() as u16).min(4).max(1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `(wrapped.len() as u16).clamp(1, 4)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (14/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/views/home/content.rs:224:1 [INFO] [stdout] | [INFO] [stdout] 224 | / fn render_card_content( [INFO] [stdout] 225 | | f: &mut Frame, [INFO] [stdout] 226 | | app: &App, [INFO] [stdout] 227 | | thread: &Thread, [INFO] [stdout] ... | [INFO] [stdout] 238 | | area: Rect, [INFO] [stdout] 239 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> crates/tenex-tui/src/ui/views/home/content.rs:291:29 [INFO] [stdout] | [INFO] [stdout] 291 | let cross_project = parent_a_tag.map_or(true, |p| p != a_tag); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use a standard comparison instead [INFO] [stdout] | [INFO] [stdout] 291 - let cross_project = parent_a_tag.map_or(true, |p| p != a_tag); [INFO] [stdout] 291 + let cross_project = parent_a_tag != Some(a_tag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `results` [INFO] [stdout] --> crates/tenex-tui/src/ui/views/home/sidebar.rs:146:14 [INFO] [stdout] | [INFO] [stdout] 146 | for i in 0..=selected_idx.min(results.len().saturating_sub(1)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 146 - for i in 0..=selected_idx.min(results.len().saturating_sub(1)) { [INFO] [stdout] 146 + for (i, ) in results.iter().enumerate().take(selected_idx.min(results.len().saturating_sub(1)) + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> crates/tenex-tui/src/ui/views/home_helpers.rs:100:16 [INFO] [stdout] | [INFO] [stdout] 100 | a_tag: &String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 100 ~ a_tag: &str, [INFO] [stdout] 101 | depth: usize, [INFO] [stdout] ... [INFO] [stdout] 123 | thread: thread.clone(), [INFO] [stdout] 124 ~ a_tag: a_tag.to_owned(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual checked division [INFO] [stdout] --> crates/tenex-tui/src/ui/views/lesson_viewer.rs:117:33 [INFO] [stdout] | [INFO] [stdout] 117 | let scroll_percent = if max_scroll > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ check performed here [INFO] [stdout] 118 | (scroll_offset * 100) / max_scroll [INFO] [stdout] | ---------------------------------- division performed here [INFO] [stdout] | [INFO] [stdout] = help: consider using `checked_div` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_checked_ops [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> crates/tenex-tui/src/ui/views/login.rs:42:75 [INFO] [stdout] | [INFO] [stdout] 42 | } else if *login_step == LoginStep::Password && !app.input.is_empty() { [INFO] [stdout] | ___________________________________________________________________________^ [INFO] [stdout] 43 | | "*".repeat(app.input.len()) [INFO] [stdout] 44 | | } else if *login_step == LoginStep::Unlock && !app.input.is_empty() { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> crates/tenex-tui/src/ui/views/login.rs:44:73 [INFO] [stdout] | [INFO] [stdout] 44 | } else if *login_step == LoginStep::Unlock && !app.input.is_empty() { [INFO] [stdout] | _________________________________________________________________________^ [INFO] [stdout] 45 | | "*".repeat(app.input.len()) [INFO] [stdout] 46 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/views/project_settings.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | / fn render_side_by_side_layout( [INFO] [stdout] 87 | | f: &mut Frame, [INFO] [stdout] 88 | | app: &App, [INFO] [stdout] 89 | | remaining: Rect, [INFO] [stdout] ... | [INFO] [stdout] 94 | | tools_focused: bool, [INFO] [stdout] 95 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/tenex-tui/src/ui/views/project_settings.rs:182:1 [INFO] [stdout] | [INFO] [stdout] 182 | / fn render_single_pane_layout( [INFO] [stdout] 183 | | f: &mut Frame, [INFO] [stdout] 184 | | app: &App, [INFO] [stdout] 185 | | remaining: Rect, [INFO] [stdout] ... | [INFO] [stdout] 190 | | tools_focused: bool, [INFO] [stdout] 191 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `hour` is only used to index `grid` [INFO] [stdout] --> crates/tenex-tui/src/ui/views/stats.rs:918:21 [INFO] [stdout] | [INFO] [stdout] 918 | for hour in 0..HOURS_PER_DAY { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 918 - for hour in 0..HOURS_PER_DAY { [INFO] [stdout] 918 + for in grid.iter().take(HOURS_PER_DAY) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 30s [INFO] running `Command { std: "docker" "inspect" "4d80a2a5ea3d6fa6da8cc49472c739353b72e43fb758b09d2121b59e168b6701", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4d80a2a5ea3d6fa6da8cc49472c739353b72e43fb758b09d2121b59e168b6701", kill_on_drop: false }` [INFO] [stdout] 4d80a2a5ea3d6fa6da8cc49472c739353b72e43fb758b09d2121b59e168b6701