Fixed findings

List of Findings

Error: CLIPPY_WARNING: [#def1]
crates/goose-cli/src/commands/project.rs:39:5: warning: consider using `sort_by_key`
#     |
#  39 |     projects.sort_by(|a, b| b.last_accessed.cmp(&a.last_accessed));
#     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#     |
#     = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_sort_by
#     = note: `#[warn(clippy::unnecessary_sort_by)]` on by default
#  help: try
#     |
#  39 -     projects.sort_by(|a, b| b.last_accessed.cmp(&a.last_accessed));
#  39 +     projects.sort_by_key(|b| std::cmp::Reverse(b.last_accessed));
#     |

Error: CLIPPY_WARNING: [#def2]
crates/goose-cli/src/commands/project.rs:181:5: warning: consider using `sort_by_key`
#      |
#  181 |     projects.sort_by(|a, b| b.last_accessed.cmp(&a.last_accessed));
#      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#      |
#      = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_sort_by
#  help: try
#      |
#  181 -     projects.sort_by(|a, b| b.last_accessed.cmp(&a.last_accessed));
#  181 +     projects.sort_by_key(|b| std::cmp::Reverse(b.last_accessed));
#      |

Error: CLIPPY_WARNING: [#def3]
crates/goose-cli/src/commands/session.rs:171:9: warning: consider using `sort_by_key`
#      |
#  171 |         sessions.sort_by(|a, b| a.updated_at.cmp(&b.updated_at));
#      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#      |
#      = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_sort_by
#  help: try
#      |
#  171 -         sessions.sort_by(|a, b| a.updated_at.cmp(&b.updated_at));
#  171 +         sessions.sort_by_key(|a| a.updated_at);
#      |

Error: CLIPPY_WARNING: [#def4]
crates/goose-cli/src/commands/session.rs:173:9: warning: consider using `sort_by_key`
#      |
#  173 |         sessions.sort_by(|a, b| b.updated_at.cmp(&a.updated_at));
#      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#      |
#      = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_sort_by
#  help: try
#      |
#  173 -         sessions.sort_by(|a, b| b.updated_at.cmp(&a.updated_at));
#  173 +         sessions.sort_by_key(|b| std::cmp::Reverse(b.updated_at));
#      |

Error: CLIPPY_WARNING: [#def5]
crates/goose-cli/src/session/completion.rs:37:37: warning: iterating on a map's values
#     |
#  37 |           let candidates: Vec<Pair> = cache
#     |  _____________________________________^
#  38 | |             .prompts
#  39 | |             .iter()
#  40 | |             .flat_map(|(_, names)| names)
#     | |_________________________________________^
#     |
#     = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#iter_kv_map
#     = note: `#[warn(clippy::iter_kv_map)]` on by default
#  help: try
#     |
#  37 ~         let candidates: Vec<Pair> = cache
#  38 +             .prompts.values().flatten()
#     |

Error: CLIPPY_WARNING: [#def6]
crates/goose-cli/src/session/streaming_buffer.rs:528:17: warning: this `if` can be collapsed into the outer `match`
#      |
#  528 | /                 if state.in_link_url {
#  529 | |                     state.in_link_url = false;
#  530 | |                 }
#      | |_________________^
#      |
#      = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#collapsible_match
#      = note: `#[warn(clippy::collapsible_match)]` on by default
#  help: collapse nested if block
#      |
#  527 ~             ")"
#  528 ~                 if state.in_link_url => {
#  529 |                     state.in_link_url = false;
#  530 ~                 }
#      |

Error: CLIPPY_WARNING: [#def7]
crates/goose-mcp/src/computercontroller/pdf_tool.rs:88:73: warning: this `if` can be collapsed into the outer `match`
#     |
#  88 | / ...                   if *offset < -100.0 {
#  89 | | ...                       text.push(' ');
#  90 | | ...                       last_was_text = false;
#  91 | | ...                   }
#     | |_______________________^
#     |
#     = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#collapsible_match
#     = note: `#[warn(clippy::collapsible_match)]` on by default
#  help: collapse nested if block
#     |
#  87 ~                                                                     Object::Real(offset)
#  88 ~                                                                         if *offset < -100.0 => {
#  89 |                                                                             text.push(' ');
#  90 |                                                                             last_was_text = false;
#  91 ~                                                                         }
#     |

Error: CLIPPY_WARNING: [#def8]
crates/goose-mcp/src/memory/mod.rs:197:25: warning: iterating on a map's values
#      |
#  197 |                         category_memories.into_iter().flat_map(|(_, v)| v).collect(),
#      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `category_memories.into_values().flatten()`
#      |
#      = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#iter_kv_map
#      = note: `#[warn(clippy::iter_kv_map)]` on by default

Error: CLIPPY_WARNING: [#def9]
crates/goose-providers/src/json.rs:57:17: warning: this `if` can be collapsed into the outer `match`
#     |
#  57 | /                 if closers.last() == Some(&c) {
#  58 | |                     closers.pop();
#  59 | |                 }
#     | |_________________^
#     |
#     = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#collapsible_match
#     = note: `#[warn(clippy::collapsible_match)]` on by default
#  help: collapse nested if block
#     |
#  56 ~             '}' | ']'
#  57 ~                 if closers.last() == Some(&c) => {
#  58 |                     closers.pop();
#  59 ~                 }
#     |

Error: CLIPPY_WARNING: [#def10]
crates/goose-server/src/routes/agent.rs:668:61: warning: redundant reference in `format!` argument
#      |
#  668 |                 format!("Failed to create {} provider: {}", &payload.provider, e),
#      |                                                             ^^^^^^^^^^^^^^^^^ help: remove the redundant `&`: `payload.provider`
#      |
#      = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#useless_borrows_in_formatting
#      = note: `#[warn(clippy::useless_borrows_in_formatting)]` on by default

Error: CLIPPY_WARNING: [#def11]
crates/goose-test/src/mcp/stdio/record.rs:73:74: warning: redundant reference in `eprintln!` argument
#     |
#  73 |         .inspect_err(|e| eprintln!("Failed to execute command '{}': {}", &cmd, e))?;
#     |                                                                          ^^^^ help: remove the redundant `&`: `cmd`
#     |
#     = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#useless_borrows_in_formatting
#     = note: `#[warn(clippy::useless_borrows_in_formatting)]` on by default

Error: CLIPPY_WARNING: [#def12]
crates/goose/src/agents/agent.rs:2227:45: warning: called `unwrap_err` on `request.tool_call` after checking its variant with `is_ok`
#       |
#  2197 | ...                   if request.tool_call.is_ok() {
#       |                       ---------------------------- help: try: `if let Err(<item>) = &request.tool_call`
#  ...
#  2227 | ...                           request.tool_call.as_ref().unwrap_err(),
#       |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#       |
#       = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_unwrap
#       = note: `#[warn(clippy::unnecessary_unwrap)]` on by default

Error: CLIPPY_WARNING: [#def13]
crates/goose/src/agents/platform_extensions/analyze/format.rs:51:9: warning: consider using `sort_by_key`
#     |
#  51 |         langs.sort_by(|a, b| b.1.cmp(&a.1));
#     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#     |
#     = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_sort_by
#     = note: `#[warn(clippy::unnecessary_sort_by)]` on by default
#  help: try
#     |
#  51 -         langs.sort_by(|a, b| b.1.cmp(&a.1));
#  51 +         langs.sort_by_key(|b| std::cmp::Reverse(b.1));
#     |

Error: CLIPPY_WARNING: [#def14]
crates/goose/src/agents/platform_extensions/orchestrator.rs:185:9: warning: consider using `sort_by_key`
#      |
#  185 |         sessions.sort_by(|a, b| b.updated_at.cmp(&a.updated_at));
#      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#      |
#      = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_sort_by
#  help: try
#      |
#  185 -         sessions.sort_by(|a, b| b.updated_at.cmp(&a.updated_at));
#  185 +         sessions.sort_by_key(|b| std::cmp::Reverse(b.updated_at));
#      |

Error: CLIPPY_WARNING: [#def15]
crates/goose/src/providers/utils.rs:199:13: warning: this `if` can be collapsed into the outer `match`
#      |
#  199 | /             if s.contains('\\') {
#  200 | |                 *s = s
#  201 | |                     .replace("\\\\n", "\n")
#  202 | |                     .replace("\\\\t", "\t")
#  ...   |
#  208 | |                     .replace("\\\"", "\"");
#  209 | |             }
#      | |_____________^
#      |
#      = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#collapsible_match
#      = note: `#[warn(clippy::collapsible_match)]` on by default
#  help: collapse nested if block
#      |
#  198 ~         Value::String(s)
#  199 ~             if s.contains('\\') => {
#  200 |                 *s = s
#  ...
#  208 |                     .replace("\\\"", "\"");
#  209 ~             }
#      |

Error: CLIPPY_WARNING: [#def16]
crates/goose/src/scheduler.rs:611:9: warning: consider using `sort_by_key`
#      |
#  611 |         schedule_sessions.sort_by(|a, b| b.1.created_at.cmp(&a.1.created_at));
#      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#      |
#      = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_sort_by
#  help: try
#      |
#  611 -         schedule_sessions.sort_by(|a, b| b.1.created_at.cmp(&a.1.created_at));
#  611 +         schedule_sessions.sort_by_key(|b| std::cmp::Reverse(b.1.created_at));
#      |

Error: CLIPPY_WARNING: [#def17]
crates/goose/src/session/chat_history_search.rs:296:9: warning: consider using `sort_by_key`
#      |
#  296 |         results.sort_by(|a, b| b.last_activity.cmp(&a.last_activity));
#      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#      |
#      = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_sort_by
#  help: try
#      |
#  296 -         results.sort_by(|a, b| b.last_activity.cmp(&a.last_activity));
#  296 +         results.sort_by_key(|b| std::cmp::Reverse(b.last_activity));
#      |

Error: COMPILER_WARNING (CWE-704): [#def18]
goose-1.39.0/vendor/libsqlite3-sys-0.30.1/sqlite3/sqlite3.c: scope_hint: In function 'sqlite3ShadowTableName'
goose-1.39.0/vendor/libsqlite3-sys-0.30.1/sqlite3/sqlite3.c:123928:9: warning[-Wdiscarded-qualifiers]: assignment discards 'const' qualifier from pointer target type
#123926|     char *zTail;                  /* Pointer to the last "_" in zName */
#123927|     Table *pTab;                  /* Table that zName is a shadow of */
#123928|->   zTail = strrchr(zName, '_');
#123929|     if( zTail==0 ) return 0;
#123930|     *zTail = 0;

Scan Properties

analyzer-version-clippy1.97.1
analyzer-version-cppcheck2.21.1
analyzer-version-gcc16.1.1
analyzer-version-gcc-analyzer16.1.1
analyzer-version-shellcheck0.11.0
analyzer-version-unicontrol0.0.2
diffbase-analyzer-version-clippy1.97.1
diffbase-analyzer-version-cppcheck2.21.1
diffbase-analyzer-version-gcc16.1.1
diffbase-analyzer-version-gcc-analyzer16.1.1
diffbase-analyzer-version-shellcheck0.11.0
diffbase-analyzer-version-unicontrol0.0.2
diffbase-enabled-pluginsclippy, cppcheck, gcc, shellcheck, unicontrol
diffbase-exit-code0
diffbase-hostip-172-16-1-221.us-west-2.compute.internal
diffbase-known-false-positives/usr/share/csmock/known-false-positives.js
diffbase-known-false-positives-rpmknown-false-positives-0.0.0.20260812.073944.g55de5c3.main-1.el9.noarch
diffbase-mock-configfedora-rawhide-x86_64
diffbase-project-namegoose-1.45.0-1.20260812161045676109.pr51
diffbase-store-results-to/tmp/tmp621ushel/goose-1.45.0-1.20260812161045676109.pr51.tar.xz
diffbase-time-created2026-08-12 19:12:31
diffbase-time-finished2026-08-12 20:08:51
diffbase-toolcsmock
diffbase-tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'gcc,clippy,unicontrol,shellcheck,cppcheck' '-o' '/tmp/tmp621ushel/goose-1.45.0-1.20260812161045676109.pr51.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '/tmp/tmp621ushel/goose-1.45.0-1.20260812161045676109.pr51.src.rpm'
diffbase-tool-versioncsmock-3.8.7.20260810.142351.gef180f1-1.el9
enabled-pluginsclippy, cppcheck, gcc, shellcheck, unicontrol
exit-code0
hostip-172-16-1-221.us-west-2.compute.internal
known-false-positives/usr/share/csmock/known-false-positives.js
known-false-positives-rpmknown-false-positives-0.0.0.20260812.073944.g55de5c3.main-1.el9.noarch
mock-configfedora-rawhide-x86_64
project-namegoose-1.39.0-1.20260730170034789010.main
store-results-to/tmp/tmp0qo484pk/goose-1.39.0-1.20260730170034789010.main.tar.xz
time-created2026-08-12 17:59:36
time-finished2026-08-12 19:10:35
titleFixed findings
toolcsmock
tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'gcc,clippy,unicontrol,shellcheck,cppcheck' '-o' '/tmp/tmp0qo484pk/goose-1.39.0-1.20260730170034789010.main.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '/tmp/tmp0qo484pk/goose-1.39.0-1.20260730170034789010.main.src.rpm'
tool-versioncsmock-3.8.7.20260810.142351.gef180f1-1.el9