[INFO] cloning repository https://github.com/jefhei/ctxpkg
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jefhei/ctxpkg" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjefhei%2Fctxpkg", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjefhei%2Fctxpkg'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a607d5b868d3a7f38ad7cec2b20500a59e4f3d0b
[INFO] testing jefhei/ctxpkg against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjefhei%2Fctxpkg" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jefhei/ctxpkg
[INFO] finished tweaking git repo https://github.com/jefhei/ctxpkg
[INFO] tweaked toml for git repo https://github.com/jefhei/ctxpkg written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jefhei/ctxpkg on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jefhei/ctxpkg already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1d0261b5582a1ab3ef45c3e131c614fbaaa60026485736c4e6c521e271bf423c
[INFO] running `Command { std: "docker" "start" "1d0261b5582a1ab3ef45c3e131c614fbaaa60026485736c4e6c521e271bf423c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1d0261b5582a1ab3ef45c3e131c614fbaaa60026485736c4e6c521e271bf423c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1d0261b5582a1ab3ef45c3e131c614fbaaa60026485736c4e6c521e271bf423c" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1d0261b5582a1ab3ef45c3e131c614fbaaa60026485736c4e6c521e271bf423c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1d0261b5582a1ab3ef45c3e131c614fbaaa60026485736c4e6c521e271bf423c" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling unicode-joining-type v1.0.0
[INFO] [stderr]    Compiling memchr v2.8.2
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling anyhow v1.0.103
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling cc v1.2.65
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling bstr v1.12.3
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling idna_mapping v1.1.0
[INFO] [stderr]    Compiling idna_adapter v1.1.0
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling libz-sys v1.1.29
[INFO] [stderr]    Compiling openssl-sys v0.9.117
[INFO] [stderr]    Compiling libssh2-sys v0.3.2
[INFO] [stderr]    Compiling libgit2-sys v0.16.2+1.7.2
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]    Compiling ignore v0.4.27
[INFO] [stderr]    Compiling git2 v0.18.3
[INFO] [stderr]    Compiling ctxpkg v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `copy_to_clipboard` is never used
[INFO] [stdout]  --> src/clipboard.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn copy_to_clipboard(_text: &str) -> Result<(), crate::error::CtxpkgError> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONFIG_DIR` is never used
[INFO] [stdout]  --> src/config.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const CONFIG_DIR: &str = ".ctxpkg";
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AUTO_DIR` is never used
[INFO] [stdout]  --> src/config.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const AUTO_DIR: &str = ".ctxpkg/auto";
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MANUAL_DIR` is never used
[INFO] [stdout]  --> src/config.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const MANUAL_DIR: &str = ".ctxpkg/manual";
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONFIG_FILE` is never used
[INFO] [stdout]  --> src/config.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CONFIG_FILE: &str = ".ctxpkg/config.yaml";
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]   --> src/config.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Config {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProjectConfig` is never constructed
[INFO] [stdout]   --> src/config.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ProjectConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PackConfig` is never constructed
[INFO] [stdout]   --> src/config.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct PackConfig {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AutoConfig` is never constructed
[INFO] [stdout]   --> src/config.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct AutoConfig {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WatchConfig` is never constructed
[INFO] [stdout]   --> src/config.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct WatchConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_token_budget` is never used
[INFO] [stdout]   --> src/config.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn default_token_budget() -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_format` is never used
[INFO] [stdout]   --> src/config.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn default_format() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_max_depth` is never used
[INFO] [stdout]   --> src/config.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn default_max_depth() -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_exclude_patterns` is never used
[INFO] [stdout]   --> src/config.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn default_exclude_patterns() -> Vec<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_max_files` is never used
[INFO] [stdout]   --> src/config.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn default_max_files() -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_recent_commits` is never used
[INFO] [stdout]   --> src/config.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn default_recent_commits() -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_detect_language` is never used
[INFO] [stdout]   --> src/config.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn default_detect_language() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_debounce_ms` is never used
[INFO] [stdout]   --> src/config.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn default_debounce_ms() -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `load` is never used
[INFO] [stdout]    --> src/config.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl Config {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 113 |     pub fn load(path: &Path) -> Result<Self, crate::error::CtxpkgError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ApiSymbol` is never constructed
[INFO] [stdout]   --> src/detect/mod.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ApiSymbol {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SymbolKind` is never used
[INFO] [stdout]   --> src/detect/mod.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum SymbolKind {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Visibility` is never used
[INFO] [stdout]   --> src/detect/mod.rs:55:10
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub enum Visibility {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Dependency` is never constructed
[INFO] [stdout]   --> src/detect/mod.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct Dependency {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConfigFile` is never constructed
[INFO] [stdout]   --> src/detect/mod.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct ConfigFile {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `LanguageDetector` is never used
[INFO] [stdout]   --> src/detect/mod.rs:88:11
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub trait LanguageDetector {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `all_detectors` is never used
[INFO] [stdout]    --> src/detect/mod.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub fn all_detectors() -> Vec<Box<dyn LanguageDetector>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_and_extract` is never used
[INFO] [stdout]    --> src/detect/mod.rs:140:8
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub fn detect_and_extract(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LanguageContext` is never constructed
[INFO] [stdout]    --> src/detect/mod.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub struct LanguageContext {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PythonDetector` is never constructed
[INFO] [stdout]   --> src/detect/python.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct PythonDetector;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JavaScriptDetector` is never constructed
[INFO] [stdout]   --> src/detect/javascript.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct JavaScriptDetector;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RustDetector` is never constructed
[INFO] [stdout]   --> src/detect/rust.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct RustDetector;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GoDetector` is never constructed
[INFO] [stdout]   --> src/detect/golang.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct GoDetector;
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GenericDetector` is never constructed
[INFO] [stdout]   --> src/detect/generic.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct GenericDetector;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CtxpkgError` is never used
[INFO] [stdout]  --> src/error.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum CtxpkgError {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scanner` is never constructed
[INFO] [stdout]   --> src/scanner/mod.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Scanner {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `scan` are never used
[INFO] [stdout]   --> src/scanner/mod.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Scanner {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 19 |     /// Create a new scanner for the given project root and config.
[INFO] [stdout] 20 |     pub fn new(root: PathBuf, config: Config) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn scan(&self) -> Result<ScanResult, CtxpkgError> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScanResult` is never constructed
[INFO] [stdout]   --> src/scanner/mod.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct ScanResult {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TreeNode` is never used
[INFO] [stdout]   --> src/scanner/mod.rs:71:10
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub enum TreeNode {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `file_count` is never used
[INFO] [stdout]   --> src/scanner/mod.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 84 | impl TreeNode {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 85 |     /// Count files recursively under this node.
[INFO] [stdout] 86 |     pub fn file_count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DirectoryTree` is never constructed
[INFO] [stdout]   --> src/scanner/mod.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub struct DirectoryTree {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `build` and `file_count` are never used
[INFO] [stdout]    --> src/scanner/mod.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl DirectoryTree {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 101 |     /// Build a directory tree from the given root path, with depth cap and exclude patterns.
[INFO] [stdout] 102 |     pub fn build(
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn file_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_tree_recursive` is never used
[INFO] [stdout]    --> src/scanner/mod.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn build_tree_recursive(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `should_exclude` is never used
[INFO] [stdout]    --> src/scanner/mod.rs:260:4
[INFO] [stdout]     |
[INFO] [stdout] 260 | fn should_exclude(file_name: &str, relative_path: &str, patterns: &[String]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_skipped_dir` is never used
[INFO] [stdout]    --> src/scanner/mod.rs:277:4
[INFO] [stdout]     |
[INFO] [stdout] 277 | fn is_skipped_dir(path: &Path, skip_dirs: &HashSet<&str>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_files_in_dir` is never used
[INFO] [stdout]    --> src/scanner/mod.rs:285:4
[INFO] [stdout]     |
[INFO] [stdout] 285 | fn count_files_in_dir(dir: &Path, skip_dirs: &HashSet<&str>) -> Result<usize, CtxpkgError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_source_files` is never used
[INFO] [stdout]    --> src/scanner/mod.rs:309:4
[INFO] [stdout]     |
[INFO] [stdout] 309 | fn collect_source_files(root: &Path) -> Vec<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_config_files` is never used
[INFO] [stdout]    --> src/scanner/mod.rs:330:4
[INFO] [stdout]     |
[INFO] [stdout] 330 | fn collect_config_files(root: &Path) -> Vec<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_files_recursive` is never used
[INFO] [stdout]    --> src/scanner/mod.rs:352:4
[INFO] [stdout]     |
[INFO] [stdout] 352 | fn collect_files_recursive(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_config_recursive` is never used
[INFO] [stdout]    --> src/scanner/mod.rs:379:4
[INFO] [stdout]     |
[INFO] [stdout] 379 | fn collect_config_recursive(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_build_system` is never used
[INFO] [stdout]    --> src/scanner/mod.rs:407:4
[INFO] [stdout]     |
[INFO] [stdout] 407 | fn detect_build_system(root: &Path) -> Option<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GitInfo` is never constructed
[INFO] [stdout]  --> src/scanner/git.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct GitInfo {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommitInfo` is never constructed
[INFO] [stdout]   --> src/scanner/git.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct CommitInfo {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_git_info` is never used
[INFO] [stdout]   --> src/scanner/git.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn get_git_info(root: &Path) -> Option<GitInfo> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_current_branch` is never used
[INFO] [stdout]   --> src/scanner/git.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn get_current_branch(repo: &git2::Repository) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_recent_commits` is never used
[INFO] [stdout]   --> src/scanner/git.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn get_recent_commits(repo: &git2::Repository, count: usize) -> Vec<CommitInfo> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_uncommitted_files` is never used
[INFO] [stdout]    --> src/scanner/git.rs:120:4
[INFO] [stdout]     |
[INFO] [stdout] 120 | fn get_uncommitted_files(repo: &git2::Repository) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_changed_files_since` is never used
[INFO] [stdout]    --> src/scanner/git.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub fn get_changed_files_since(root: &Path, since: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DetectedLanguage` is never constructed
[INFO] [stdout]  --> src/scanner/lang.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct DetectedLanguage {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_language` is never used
[INFO] [stdout]   --> src/scanner/lang.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn detect_language(root: &std::path::Path) -> Option<DetectedLanguage> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 43.63s
[INFO] running `Command { std: "docker" "inspect" "1d0261b5582a1ab3ef45c3e131c614fbaaa60026485736c4e6c521e271bf423c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1d0261b5582a1ab3ef45c3e131c614fbaaa60026485736c4e6c521e271bf423c" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling assert_cmd v2.2.2
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling git2 v0.18.3
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling bstr v1.12.3
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling ignore v0.4.27
[INFO] [stderr]    Compiling ctxpkg v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `copy_to_clipboard` is never used
[INFO] [stdout]  --> src/clipboard.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn copy_to_clipboard(_text: &str) -> Result<(), crate::error::CtxpkgError> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONFIG_DIR` is never used
[INFO] [stdout]  --> src/config.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const CONFIG_DIR: &str = ".ctxpkg";
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AUTO_DIR` is never used
[INFO] [stdout]  --> src/config.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const AUTO_DIR: &str = ".ctxpkg/auto";
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MANUAL_DIR` is never used
[INFO] [stdout]  --> src/config.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const MANUAL_DIR: &str = ".ctxpkg/manual";
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONFIG_FILE` is never used
[INFO] [stdout]  --> src/config.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CONFIG_FILE: &str = ".ctxpkg/config.yaml";
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `load` is never used
[INFO] [stdout]    --> src/config.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl Config {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 113 |     pub fn load(path: &Path) -> Result<Self, crate::error::CtxpkgError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kind`, `file`, `line`, and `visibility` are never read
[INFO] [stdout]   --> src/detect/mod.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ApiSymbol {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 33 |     pub name: String,
[INFO] [stdout] 34 |     pub kind: SymbolKind,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 35 |     pub file: PathBuf,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 36 |     pub line: usize,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 37 |     pub visibility: Visibility,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiSymbol` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Struct`, `Trait`, `Enum`, `Type`, `Constant`, and `Route` are never constructed
[INFO] [stdout]   --> src/detect/mod.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum SymbolKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 43 |     Function,
[INFO] [stdout] 44 |     Struct,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 45 |     Class,
[INFO] [stdout] 46 |     Trait,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 47 |     Enum,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 48 |     Type,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 49 |     Constant,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 50 |     Route,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Exported` and `Private` are never constructed
[INFO] [stdout]   --> src/detect/mod.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub enum Visibility {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 59 |     Exported,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 60 |     /// Internal/private to the module
[INFO] [stdout] 61 |     Private,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Visibility` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `version`, and `purpose` are never read
[INFO] [stdout]   --> src/detect/mod.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct Dependency {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 67 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 68 |     pub version: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 69 |     pub purpose: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Dependency` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path` and `content_summary` are never read
[INFO] [stdout]   --> src/detect/mod.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct ConfigFile {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 75 |     pub path: PathBuf,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 76 |     pub content_summary: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConfigFile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `root`, `api_surface`, `dependencies`, and `config_files` are never read
[INFO] [stdout]    --> src/detect/mod.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub struct LanguageContext {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 177 |     /// Project root path
[INFO] [stdout] 178 |     pub root: PathBuf,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub api_surface: Vec<ApiSymbol>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 183 |     /// Combined dependencies from all detectors
[INFO] [stdout] 184 |     pub dependencies: Vec<Dependency>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 185 |     /// Combined config files from all detectors
[INFO] [stdout] 186 |     pub config_files: Vec<ConfigFile>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LanguageContext` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PackError` and `ClipboardError` are never constructed
[INFO] [stdout]   --> src/error.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum CtxpkgError {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 15 |     PackError(String),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     ClipboardError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CtxpkgError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `root`, `tree`, `source_files`, and `git_info` are never read
[INFO] [stdout]   --> src/scanner/mod.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct ScanResult {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 59 |     pub root: PathBuf,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 60 |     pub tree: DirectoryTree,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub source_files: Vec<PathBuf>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 66 |     pub git_info: Option<git::GitInfo>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScanResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path` and `size` are never read
[INFO] [stdout]   --> src/scanner/mod.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     File {
[INFO] [stdout]    |     ---- fields in this variant
[INFO] [stdout] 73 |         name: String,
[INFO] [stdout] 74 |         path: PathBuf,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 75 |         size: u64,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TreeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `children` is never read
[INFO] [stdout]   --> src/scanner/mod.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     Dir {
[INFO] [stdout]    |     --- field in this variant
[INFO] [stdout] 78 |         name: String,
[INFO] [stdout] 79 |         children: Vec<TreeNode>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TreeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_commit_time` is never read
[INFO] [stdout]   --> src/scanner/git.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct GitInfo {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub last_commit_time: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GitInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `version`, `build_files`, and `detector_used` are never read
[INFO] [stdout]   --> src/scanner/lang.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct DetectedLanguage {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout]  9 |     pub name: String,
[INFO] [stdout] 10 |     pub version: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 11 |     pub build_files: Vec<PathBuf>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 12 |     pub detector_used: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DetectedLanguage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 13.96s
[INFO] running `Command { std: "docker" "inspect" "1d0261b5582a1ab3ef45c3e131c614fbaaa60026485736c4e6c521e271bf423c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1d0261b5582a1ab3ef45c3e131c614fbaaa60026485736c4e6c521e271bf423c" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: function `copy_to_clipboard` is never used
[INFO] [stderr]  --> src/clipboard.rs:2:8
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub fn copy_to_clipboard(_text: &str) -> Result<(), crate::error::CtxpkgError> {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CONFIG_DIR` is never used
[INFO] [stderr]  --> src/config.rs:4:11
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub const CONFIG_DIR: &str = ".ctxpkg";
[INFO] [stderr]   |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `AUTO_DIR` is never used
[INFO] [stderr]  --> src/config.rs:5:11
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub const AUTO_DIR: &str = ".ctxpkg/auto";
[INFO] [stderr]   |           ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MANUAL_DIR` is never used
[INFO] [stderr]  --> src/config.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub const MANUAL_DIR: &str = ".ctxpkg/manual";
[INFO] [stderr]   |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CONFIG_FILE` is never used
[INFO] [stderr]  --> src/config.rs:7:11
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub const CONFIG_FILE: &str = ".ctxpkg/config.yaml";
[INFO] [stderr]   |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `load` is never used
[INFO] [stderr]    --> src/config.rs:113:12
[INFO] [stderr]     |
[INFO] [stderr] 112 | impl Config {
[INFO] [stderr]     | ----------- associated function in this implementation
[INFO] [stderr] 113 |     pub fn load(path: &Path) -> Result<Self, crate::error::CtxpkgError> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `kind`, `file`, `line`, and `visibility` are never read
[INFO] [stderr]   --> src/detect/mod.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub struct ApiSymbol {
[INFO] [stderr]    |            --------- fields in this struct
[INFO] [stderr] 33 |     pub name: String,
[INFO] [stderr] 34 |     pub kind: SymbolKind,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 35 |     pub file: PathBuf,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 36 |     pub line: usize,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 37 |     pub visibility: Visibility,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ApiSymbol` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Struct`, `Trait`, `Enum`, `Type`, `Constant`, and `Route` are never constructed
[INFO] [stderr]   --> src/detect/mod.rs:44:5
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub enum SymbolKind {
[INFO] [stderr]    |          ---------- variants in this enum
[INFO] [stderr] 43 |     Function,
[INFO] [stderr] 44 |     Struct,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 45 |     Class,
[INFO] [stderr] 46 |     Trait,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 47 |     Enum,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 48 |     Type,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 49 |     Constant,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 50 |     Route,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SymbolKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Exported` and `Private` are never constructed
[INFO] [stderr]   --> src/detect/mod.rs:59:5
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub enum Visibility {
[INFO] [stderr]    |          ---------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 59 |     Exported,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 60 |     /// Internal/private to the module
[INFO] [stderr] 61 |     Private,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Visibility` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `name`, `version`, and `purpose` are never read
[INFO] [stderr]   --> src/detect/mod.rs:67:9
[INFO] [stderr]    |
[INFO] [stderr] 66 | pub struct Dependency {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 67 |     pub name: String,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 68 |     pub version: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 69 |     pub purpose: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Dependency` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `path` and `content_summary` are never read
[INFO] [stderr]   --> src/detect/mod.rs:75:9
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub struct ConfigFile {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 75 |     pub path: PathBuf,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 76 |     pub content_summary: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ConfigFile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `root`, `api_surface`, `dependencies`, and `config_files` are never read
[INFO] [stderr]    --> src/detect/mod.rs:178:9
[INFO] [stderr]     |
[INFO] [stderr] 176 | pub struct LanguageContext {
[INFO] [stderr]     |            --------------- fields in this struct
[INFO] [stderr] 177 |     /// Project root path
[INFO] [stderr] 178 |     pub root: PathBuf,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 182 |     pub api_surface: Vec<ApiSymbol>,
[INFO] [stderr]     |         ^^^^^^^^^^^
[INFO] [stderr] 183 |     /// Combined dependencies from all detectors
[INFO] [stderr] 184 |     pub dependencies: Vec<Dependency>,
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr] 185 |     /// Combined config files from all detectors
[INFO] [stderr] 186 |     pub config_files: Vec<ConfigFile>,
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `LanguageContext` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `PackError` and `ClipboardError` are never constructed
[INFO] [stderr]   --> src/error.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr]  4 | pub enum CtxpkgError {
[INFO] [stderr]    |          ----------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 15 |     PackError(String),
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 18 |     ClipboardError(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CtxpkgError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `root`, `tree`, `source_files`, and `git_info` are never read
[INFO] [stderr]   --> src/scanner/mod.rs:59:9
[INFO] [stderr]    |
[INFO] [stderr] 58 | pub struct ScanResult {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 59 |     pub root: PathBuf,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 60 |     pub tree: DirectoryTree,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 65 |     pub source_files: Vec<PathBuf>,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 66 |     pub git_info: Option<git::GitInfo>,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ScanResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `path` and `size` are never read
[INFO] [stderr]   --> src/scanner/mod.rs:74:9
[INFO] [stderr]    |
[INFO] [stderr] 72 |     File {
[INFO] [stderr]    |     ---- fields in this variant
[INFO] [stderr] 73 |         name: String,
[INFO] [stderr] 74 |         path: PathBuf,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 75 |         size: u64,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TreeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `children` is never read
[INFO] [stderr]   --> src/scanner/mod.rs:79:9
[INFO] [stderr]    |
[INFO] [stderr] 77 |     Dir {
[INFO] [stderr]    |     --- field in this variant
[INFO] [stderr] 78 |         name: String,
[INFO] [stderr] 79 |         children: Vec<TreeNode>,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TreeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `last_commit_time` is never read
[INFO] [stderr]   --> src/scanner/git.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr]  9 | pub struct GitInfo {
[INFO] [stderr]    |            ------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 13 |     pub last_commit_time: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `GitInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `version`, `build_files`, and `detector_used` are never read
[INFO] [stderr]   --> src/scanner/lang.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr]  8 | pub struct DetectedLanguage {
[INFO] [stderr]    |            ---------------- fields in this struct
[INFO] [stderr]  9 |     pub name: String,
[INFO] [stderr] 10 |     pub version: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 11 |     pub build_files: Vec<PathBuf>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 12 |     pub detector_used: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DetectedLanguage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `ctxpkg` (bin "ctxpkg" test) generated 18 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ctxpkg-19aa439118d5421b)
[INFO] [stdout] running 29 tests
[INFO] [stdout] test detect::tests::test_all_detectors_contains_all ... ok
[INFO] [stdout] test detect::tests::test_empty_project_generic_only ... ok
[INFO] [stdout] test detect::tests::test_detect_and_extract_with_multiple_detectors ... ok
[INFO] [stdout] test detect::tests::test_javascript_detector_detects_package_json ... ok
[INFO] [stdout] test detect::tests::test_python_api_surface_extracts_defs ... ok
[INFO] [stdout] test detect::tests::test_generic_detector_always_true ... ok
[INFO] [stdout] test detect::tests::test_go_detector_detects_go_mod ... ok
[INFO] [stdout] test detect::tests::test_rust_detector_rejects_non_rust ... ok
[INFO] [stdout] test detect::tests::test_python_detector_detects_setup_py ... ok
[INFO] [stdout] test scanner::git::tests::test_commit_info_display ... ok
[INFO] [stdout] test detect::tests::test_rust_detector_detects_cargo_toml ... ok
[INFO] [stdout] test scanner::tests::test_lang_detection_rust ... ok
[INFO] [stdout] test scanner::tests::test_directory_tree_builds ... ok
[INFO] [stdout] test scanner::tests::test_empty_directory ... ok
[INFO] [stdout] test detect::tests::test_python_detector_detects_pyproject_toml ... ok
[INFO] [stdout] test scanner::tests::test_lang_detection_unknown ... ok
[INFO] [stdout] test scanner::tests::test_skip_directories ... ok
[INFO] [stdout] test scanner::tests::test_exclude_patterns ... ok
[INFO] [stdout] test scanner::tests::test_lang_detection_javascript ... ok
[INFO] [stdout] test scanner::tests::test_depth_limiting ... ok
[INFO] [stdout] test scanner::git::tests::test_get_changed_files_since_invalid_repo ... ok
[INFO] [stdout] test scanner::git::tests::test_get_git_info_returns_none_for_non_git_repo ... ok
[INFO] [stdout] test scanner::tests::test_scanner_config_files ... ok
[INFO] [stdout] test scanner::tests::test_scanner_scan ... ok
[INFO] [stdout] test scanner::git::tests::test_get_git_info_returns_some_for_git_repo ... ok
[INFO] [stdout] test scanner::git::tests::test_get_changed_files_since_no_changes ... ok
[INFO] [stdout] test scanner::git::tests::test_get_git_info_uncommitted_files ... ok
[INFO] [stdout] test scanner::git::tests::test_get_git_info_recent_commits ... ok
[INFO] [stdout] test scanner::git::tests::test_get_changed_files_since ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "1d0261b5582a1ab3ef45c3e131c614fbaaa60026485736c4e6c521e271bf423c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1d0261b5582a1ab3ef45c3e131c614fbaaa60026485736c4e6c521e271bf423c", kill_on_drop: false }`
[INFO] [stdout] 1d0261b5582a1ab3ef45c3e131c614fbaaa60026485736c4e6c521e271bf423c
