[INFO] cloning repository https://github.com/nagyben/wsb-dd-analyzer [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nagyben/wsb-dd-analyzer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnagyben%2Fwsb-dd-analyzer", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnagyben%2Fwsb-dd-analyzer'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 420abe676bb304fee2d34a712e724f6910610904 [INFO] testing nagyben/wsb-dd-analyzer against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnagyben%2Fwsb-dd-analyzer" "/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/nagyben/wsb-dd-analyzer [INFO] finished tweaking git repo https://github.com/nagyben/wsb-dd-analyzer [INFO] tweaked toml for git repo https://github.com/nagyben/wsb-dd-analyzer written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/nagyben/wsb-dd-analyzer on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/nagyben/wsb-dd-analyzer 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "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/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d94cfd21830456bc66883526602b9ca2c888338d7ba67f670ead949f9544dc6a [INFO] running `Command { std: "docker" "start" "-a" "d94cfd21830456bc66883526602b9ca2c888338d7ba67f670ead949f9544dc6a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d94cfd21830456bc66883526602b9ca2c888338d7ba67f670ead949f9544dc6a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d94cfd21830456bc66883526602b9ca2c888338d7ba67f670ead949f9544dc6a", kill_on_drop: false }` [INFO] [stdout] d94cfd21830456bc66883526602b9ca2c888338d7ba67f670ead949f9544dc6a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ee3577b4dcd68cfb04bdf0a9517719e4b059ded088d49357a77579826edb9a37 [INFO] running `Command { std: "docker" "start" "-a" "ee3577b4dcd68cfb04bdf0a9517719e4b059ded088d49357a77579826edb9a37", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.101 [INFO] [stderr] Compiling unicode-ident v1.0.19 [INFO] [stderr] Compiling libc v0.2.175 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling pin-project-lite v0.2.16 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Compiling itoa v1.0.15 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling log v0.4.28 [INFO] [stderr] Compiling find-msvc-tools v0.1.2 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling bytes v1.10.1 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling stable_deref_trait v1.2.0 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling hashbrown v0.16.0 [INFO] [stderr] Compiling cc v1.2.38 [INFO] [stderr] Compiling slab v0.4.11 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling serde_core v1.0.226 [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling litemap v0.8.0 [INFO] [stderr] Compiling writeable v0.6.1 [INFO] [stderr] Compiling tracing-core v0.1.34 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling http v1.3.1 [INFO] [stderr] Compiling icu_properties_data v2.0.1 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Compiling serde v1.0.226 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling try-lock v0.2.5 [INFO] [stderr] Compiling zeroize v1.8.1 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling rustls-pki-types v1.12.0 [INFO] [stderr] Compiling bitflags v2.9.4 [INFO] [stderr] Compiling foreign-types-shared v0.1.1 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling foreign-types v0.3.2 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling indexmap v2.11.4 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling rustls v0.23.32 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.6 [INFO] [stderr] Compiling mio v1.0.4 [INFO] [stderr] Compiling socket2 v0.6.0 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling utf8_iter v1.0.4 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling time-core v0.1.6 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling ipnet v2.11.0 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling cookie v0.18.1 [INFO] [stderr] Compiling time-macros v0.2.24 [INFO] [stderr] Compiling openssl-probe v0.1.6 [INFO] [stderr] Compiling deranged v0.5.5 [INFO] [stderr] Compiling mime v0.3.17 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling unicase v2.8.1 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling psl-types v2.0.11 [INFO] [stderr] Compiling winnow v0.5.40 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling webpki-roots v1.0.4 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling strsim v0.10.0 [INFO] [stderr] Compiling iri-string v0.7.8 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling if_chain v1.0.2 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling owo-colors v4.2.2 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Compiling object v0.36.7 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling tracing-subscriber v0.3.20 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Compiling anstyle-query v1.1.4 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling unicode-width v0.2.1 [INFO] [stderr] Compiling winnow v0.7.13 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling gimli v0.31.1 [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Compiling eyre v0.6.12 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling time v0.3.44 [INFO] [stderr] Compiling color-spantrace v0.3.0 [INFO] [stderr] Compiling thiserror v2.0.17 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling convert_case v0.8.0 [INFO] [stderr] Compiling basic-toml v0.1.10 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling clap_lex v0.7.6 [INFO] [stderr] Compiling rustc-demangle v0.1.26 [INFO] [stderr] Compiling toml_edit v0.19.15 [INFO] [stderr] Compiling bytecount v0.6.9 [INFO] [stderr] Compiling dyn-clone v1.0.20 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Compiling indenter v0.3.4 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling rustc-hash v2.1.1 [INFO] [stderr] Compiling clap_builder v4.5.51 [INFO] [stderr] Compiling papergrid v0.17.0 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling testing_table v0.3.0 [INFO] [stderr] Compiling ordered-float v5.1.0 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling iana-time-zone v0.1.64 [INFO] [stderr] Compiling matchit v0.8.4 [INFO] [stderr] Compiling as-any v0.3.2 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Compiling dotenvy v0.15.7 [INFO] [stderr] Compiling addr2line v0.24.2 [INFO] [stderr] Compiling eventsource-stream v0.2.3 [INFO] [stderr] Compiling rustls-webpki v0.103.6 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling deluxe-core v0.5.0 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Compiling proc-macro-crate v1.3.1 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling serde_derive v1.0.226 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling tokio v1.47.1 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling schemars_derive v1.0.4 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Compiling deluxe-macros v0.5.0 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling backtrace v0.3.75 [INFO] [stderr] Compiling clap_derive v4.5.49 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Compiling yoke v0.8.0 [INFO] [stderr] Compiling pin-project v1.1.10 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling zerovec v0.11.4 [INFO] [stderr] Compiling zerotrie v0.2.2 [INFO] [stderr] Compiling tabled_derive v0.11.0 [INFO] [stderr] Compiling tracing-error v0.2.1 [INFO] [stderr] Compiling axum-core v0.5.5 [INFO] [stderr] Compiling maybe-async v0.2.10 [INFO] [stderr] Compiling color-eyre v0.6.5 [INFO] [stderr] Compiling derive_more v2.0.1 [INFO] [stderr] Compiling tabled v0.20.0 [INFO] [stderr] Compiling clap v4.5.51 [INFO] [stderr] Compiling deluxe v0.5.0 [INFO] [stderr] Compiling rig-derive v0.1.7 [INFO] [stderr] Compiling tinystr v0.8.1 [INFO] [stderr] Compiling potential_utf v0.1.3 [INFO] [stderr] Compiling icu_collections v2.0.0 [INFO] [stderr] Compiling askama_parser v0.14.0 [INFO] [stderr] Compiling icu_locale_core v2.0.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling schemars v1.0.4 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling icu_provider v2.0.0 [INFO] [stderr] Compiling tracing-futures v0.2.5 [INFO] [stderr] Compiling icu_properties v2.0.1 [INFO] [stderr] Compiling icu_normalizer v2.0.0 [INFO] [stderr] Compiling tokio-util v0.7.16 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tokio-rustls v0.26.3 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling publicsuffix v2.3.0 [INFO] [stderr] Compiling url v2.5.7 [INFO] [stderr] Compiling askama_derive v0.14.0 [INFO] [stderr] Compiling h2 v0.4.12 [INFO] [stderr] Compiling tower-http v0.6.6 [INFO] [stderr] Compiling cookie_store v0.21.1 [INFO] [stderr] Compiling askama v0.14.0 [INFO] [stderr] Compiling hyper v1.7.0 [INFO] [stderr] Compiling hyper-util v0.1.17 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling axum v0.8.6 [INFO] [stderr] Compiling reqwest v0.12.23 [INFO] [stderr] Compiling roux v2.2.15 [INFO] [stderr] Compiling rig-core v0.23.1 [INFO] [stderr] Compiling yahoo_finance_api v4.1.0 [INFO] [stderr] Compiling wsb-dd-analyser v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> src/llm_extractor.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | use serde_json::{Value, json}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_headers` is never used [INFO] [stdout] --> src/reddit.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn build_headers() -> header::HeaderMap { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_listing` is never used [INFO] [stdout] --> src/reddit.rs:37:10 [INFO] [stdout] | [INFO] [stdout] 37 | async fn fetch_listing(client: &reqwest::Client, url: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_top` is never used [INFO] [stdout] --> src/reddit.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | pub(crate) async fn get_top(client: &reqwest::Client) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_hot` is never used [INFO] [stdout] --> src/reddit.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | pub(crate) async fn get_hot(client: &reqwest::Client) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_positions_for_post` is never used [INFO] [stdout] --> src/reddit.rs:71:10 [INFO] [stdout] | [INFO] [stdout] 71 | async fn get_positions_for_post( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deduplicate_positions` is never used [INFO] [stdout] --> src/reddit.rs:93:4 [INFO] [stdout] | [INFO] [stdout] 93 | fn deduplicate_positions(positions: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enrich_positions_with_prices` is never used [INFO] [stdout] --> src/reddit.rs:126:10 [INFO] [stdout] | [INFO] [stdout] 126 | async fn enrich_positions_with_prices( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_single_post` is never used [INFO] [stdout] --> src/reddit.rs:161:10 [INFO] [stdout] | [INFO] [stdout] 161 | async fn process_single_post( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_posts_with_flair` is never used [INFO] [stdout] --> src/reddit.rs:196:21 [INFO] [stdout] | [INFO] [stdout] 196 | pub(crate) async fn fetch_posts_with_flair( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `selftext` are never read [INFO] [stdout] --> src/types.rs:11:16 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Post { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 10 | #[tabled(skip)] [INFO] [stdout] 11 | pub(crate) name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub(crate) selftext: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Post` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `display_flair` is never used [INFO] [stdout] --> src/types.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn display_flair(flairs: &Option>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> src/llm_extractor.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | use serde_json::{Value, json}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_prices_batch` is never used [INFO] [stdout] --> src/price_fetcher.rs:77:14 [INFO] [stdout] | [INFO] [stdout] 77 | pub async fn fetch_prices_batch( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `display_flair` is never used [INFO] [stdout] --> src/types.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn display_flair(flairs: &Option>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Flair` is never constructed [INFO] [stdout] --> src/types.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Flair { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 28s [INFO] running `Command { std: "docker" "inspect" "ee3577b4dcd68cfb04bdf0a9517719e4b059ded088d49357a77579826edb9a37", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ee3577b4dcd68cfb04bdf0a9517719e4b059ded088d49357a77579826edb9a37", kill_on_drop: false }` [INFO] [stdout] ee3577b4dcd68cfb04bdf0a9517719e4b059ded088d49357a77579826edb9a37 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bfa314a436e94f8166593640a2ae6a903839e0e89bcd3c9b043dc38fb48e364a [INFO] running `Command { std: "docker" "start" "-a" "bfa314a436e94f8166593640a2ae6a903839e0e89bcd3c9b043dc38fb48e364a", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> src/llm_extractor.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | use serde_json::{Value, json}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_headers` is never used [INFO] [stdout] --> src/reddit.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn build_headers() -> header::HeaderMap { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_listing` is never used [INFO] [stdout] --> src/reddit.rs:37:10 [INFO] [stdout] | [INFO] [stdout] 37 | async fn fetch_listing(client: &reqwest::Client, url: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_top` is never used [INFO] [stdout] --> src/reddit.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | pub(crate) async fn get_top(client: &reqwest::Client) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_hot` is never used [INFO] [stdout] --> src/reddit.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | pub(crate) async fn get_hot(client: &reqwest::Client) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_positions_for_post` is never used [INFO] [stdout] --> src/reddit.rs:71:10 [INFO] [stdout] | [INFO] [stdout] 71 | async fn get_positions_for_post( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deduplicate_positions` is never used [INFO] [stdout] --> src/reddit.rs:93:4 [INFO] [stdout] | [INFO] [stdout] 93 | fn deduplicate_positions(positions: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enrich_positions_with_prices` is never used [INFO] [stdout] --> src/reddit.rs:126:10 [INFO] [stdout] | [INFO] [stdout] 126 | async fn enrich_positions_with_prices( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_single_post` is never used [INFO] [stdout] --> src/reddit.rs:161:10 [INFO] [stdout] | [INFO] [stdout] 161 | async fn process_single_post( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_posts_with_flair` is never used [INFO] [stdout] --> src/reddit.rs:196:21 [INFO] [stdout] | [INFO] [stdout] 196 | pub(crate) async fn fetch_posts_with_flair( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `selftext` are never read [INFO] [stdout] --> src/types.rs:11:16 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Post { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 10 | #[tabled(skip)] [INFO] [stdout] 11 | pub(crate) name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub(crate) selftext: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Post` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling wsb-dd-analyser v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: function `display_flair` is never used [INFO] [stdout] --> src/types.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn display_flair(flairs: &Option>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> src/llm_extractor.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | use serde_json::{Value, json}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> src/llm_extractor.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | use serde_json::{Value, json}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_headers` is never used [INFO] [stdout] --> src/reddit.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn build_headers() -> header::HeaderMap { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_listing` is never used [INFO] [stdout] --> src/reddit.rs:37:10 [INFO] [stdout] | [INFO] [stdout] 37 | async fn fetch_listing(client: &reqwest::Client, url: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_top` is never used [INFO] [stdout] --> src/reddit.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | pub(crate) async fn get_top(client: &reqwest::Client) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_hot` is never used [INFO] [stdout] --> src/reddit.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | pub(crate) async fn get_hot(client: &reqwest::Client) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_positions_for_post` is never used [INFO] [stdout] --> src/reddit.rs:71:10 [INFO] [stdout] | [INFO] [stdout] 71 | async fn get_positions_for_post( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deduplicate_positions` is never used [INFO] [stdout] --> src/reddit.rs:93:4 [INFO] [stdout] | [INFO] [stdout] 93 | fn deduplicate_positions(positions: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enrich_positions_with_prices` is never used [INFO] [stdout] --> src/reddit.rs:126:10 [INFO] [stdout] | [INFO] [stdout] 126 | async fn enrich_positions_with_prices( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_single_post` is never used [INFO] [stdout] --> src/reddit.rs:161:10 [INFO] [stdout] | [INFO] [stdout] 161 | async fn process_single_post( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_posts_with_flair` is never used [INFO] [stdout] --> src/reddit.rs:196:21 [INFO] [stdout] | [INFO] [stdout] 196 | pub(crate) async fn fetch_posts_with_flair( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `selftext` are never read [INFO] [stdout] --> src/types.rs:11:16 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Post { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 10 | #[tabled(skip)] [INFO] [stdout] 11 | pub(crate) name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub(crate) selftext: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Post` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `display_flair` is never used [INFO] [stdout] --> src/types.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn display_flair(flairs: &Option>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_prices_batch` is never used [INFO] [stdout] --> src/price_fetcher.rs:77:14 [INFO] [stdout] | [INFO] [stdout] 77 | pub async fn fetch_prices_batch( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `display_flair` is never used [INFO] [stdout] --> src/types.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn display_flair(flairs: &Option>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Flair` is never constructed [INFO] [stdout] --> src/types.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Flair { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 5.19s [INFO] running `Command { std: "docker" "inspect" "bfa314a436e94f8166593640a2ae6a903839e0e89bcd3c9b043dc38fb48e364a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bfa314a436e94f8166593640a2ae6a903839e0e89bcd3c9b043dc38fb48e364a", kill_on_drop: false }` [INFO] [stdout] bfa314a436e94f8166593640a2ae6a903839e0e89bcd3c9b043dc38fb48e364a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 702803b2054527e8d8c5b3e0206795babaffab2287035373aec51036a66a2bf1 [INFO] running `Command { std: "docker" "start" "-a" "702803b2054527e8d8c5b3e0206795babaffab2287035373aec51036a66a2bf1", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `Value` [INFO] [stderr] --> src/llm_extractor.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | use serde_json::{Value, json}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `build_headers` is never used [INFO] [stderr] --> src/reddit.rs:16:4 [INFO] [stderr] | [INFO] [stderr] 16 | fn build_headers() -> header::HeaderMap { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `fetch_listing` is never used [INFO] [stderr] --> src/reddit.rs:37:10 [INFO] [stderr] | [INFO] [stderr] 37 | async fn fetch_listing(client: &reqwest::Client, url: &str) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_top` is never used [INFO] [stderr] --> src/reddit.rs:62:21 [INFO] [stderr] | [INFO] [stderr] 62 | pub(crate) async fn get_top(client: &reqwest::Client) -> Result> { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_hot` is never used [INFO] [stderr] --> src/reddit.rs:66:21 [INFO] [stderr] | [INFO] [stderr] 66 | pub(crate) async fn get_hot(client: &reqwest::Client) -> Result> { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_positions_for_post` is never used [INFO] [stderr] --> src/reddit.rs:71:10 [INFO] [stderr] | [INFO] [stderr] 71 | async fn get_positions_for_post( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `deduplicate_positions` is never used [INFO] [stderr] --> src/reddit.rs:93:4 [INFO] [stderr] | [INFO] [stderr] 93 | fn deduplicate_positions(positions: Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `enrich_positions_with_prices` is never used [INFO] [stderr] --> src/reddit.rs:126:10 [INFO] [stderr] | [INFO] [stderr] 126 | async fn enrich_positions_with_prices( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `process_single_post` is never used [INFO] [stderr] --> src/reddit.rs:161:10 [INFO] [stderr] | [INFO] [stderr] 161 | async fn process_single_post( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `fetch_posts_with_flair` is never used [INFO] [stderr] --> src/reddit.rs:196:21 [INFO] [stderr] | [INFO] [stderr] 196 | pub(crate) async fn fetch_posts_with_flair( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `name` and `selftext` are never read [INFO] [stderr] --> src/types.rs:11:16 [INFO] [stderr] | [INFO] [stderr] 9 | pub struct Post { [INFO] [stderr] | ---- fields in this struct [INFO] [stderr] 10 | #[tabled(skip)] [INFO] [stderr] 11 | pub(crate) name: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 21 | pub(crate) selftext: Option, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Post` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `display_flair` is never used [INFO] [stderr] --> src/types.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | fn display_flair(flairs: &Option>) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `wsb-dd-analyser` (lib) generated 12 warnings (run `cargo fix --lib -p wsb-dd-analyser` to apply 1 suggestion) [INFO] [stderr] warning: `wsb-dd-analyser` (lib test) generated 12 warnings (12 duplicates) [INFO] [stderr] warning: function `fetch_prices_batch` is never used [INFO] [stderr] --> src/price_fetcher.rs:77:14 [INFO] [stderr] | [INFO] [stderr] 77 | pub async fn fetch_prices_batch( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: struct `Flair` is never constructed [INFO] [stderr] --> src/types.rs:42:12 [INFO] [stderr] | [INFO] [stderr] 42 | pub struct Flair { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `wsb-dd-analyser` (bin "wsb-dd-analyser" test) generated 4 warnings (2 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.46s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/wsb_dd_analyser-bb8b70a3f0e805cc) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test llm_extractor::tests::test_extract_positions_from_empty_text ... ok [INFO] [stdout] test llm_extractor::tests::test_extract_positions_from_short_text ... ok [INFO] [stdout] test cache::tests::test_cache_round_trip ... FAILED [INFO] [stdout] test llm_extractor::tests::test_extract_positions_real_api ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- cache::tests::test_cache_round_trip stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'cache::tests::test_cache_round_trip' (18) panicked at src/cache.rs:150:44: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: Read-only file system (os error 30) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/cache.rs:18:9 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x57ca347fe69a - std[e72de78501789eb0]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x57ca347fe69a - std[e72de78501789eb0]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x57ca347fe69a - std[e72de78501789eb0]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x57ca347fe69a - <::print::DisplayBacktrace as core[6aaeda2c7ad07a48]::fmt::Display>::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x57ca3481509a - ::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x57ca3481509a - core[6aaeda2c7ad07a48]::fmt::write [INFO] [stdout] 6: 0x57ca34803542 - std[e72de78501789eb0]::io::default_write_fmt::> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x57ca34803542 - as std[e72de78501789eb0]::io::Write>::write_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x57ca347db53f - ::print [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x57ca347db53f - std[e72de78501789eb0]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x57ca347f5f39 - std[e72de78501789eb0]::panicking::default_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x57ca33f3543c - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x57ca33f3543c - test[4f12b380f1fb68c5]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x57ca347f61b2 - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x57ca347f61b2 - std[e72de78501789eb0]::panicking::panic_with_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x57ca347db5f8 - std[e72de78501789eb0]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x57ca347d2b59 - std[e72de78501789eb0]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x57ca347dc56d - __rustc[78a4cf188af856fc]::rust_begin_unwind [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x57ca3481588c - core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x57ca348155d2 - core[6aaeda2c7ad07a48]::result::unwrap_failed [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1867:5 [INFO] [stdout] 20: 0x57ca33ef250a - >::unwrap [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1233:23 [INFO] [stdout] 21: 0x57ca33ef250a - wsb_dd_analyser[dc7e78b65de964ab]::cache::tests::test_cache_round_trip [INFO] [stdout] at /opt/rustwide/workdir/src/cache.rs:150:44 [INFO] [stdout] 22: 0x57ca33ef0e17 - wsb_dd_analyser[dc7e78b65de964ab]::cache::tests::test_cache_round_trip::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/cache.rs:128:31 [INFO] [stdout] 23: 0x57ca33edd166 - >::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x57ca33f2951b - core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x57ca33f2951b - test[4f12b380f1fb68c5]::__rust_begin_short_backtrace::, fn() -> core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:663:18 [INFO] [stdout] 26: 0x57ca33f35f0b - test[4f12b380f1fb68c5]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:74 [INFO] [stdout] 27: 0x57ca33f35f0b - as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x57ca33f35f0b - std[e72de78501789eb0]::panicking::catch_unwind::do_call::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x57ca33f35f0b - std[e72de78501789eb0]::panicking::catch_unwind::, core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x57ca33f35f0b - std[e72de78501789eb0]::panic::catch_unwind::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x57ca33f35f0b - test[4f12b380f1fb68c5]::run_test_in_process [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:27 [INFO] [stdout] 32: 0x57ca33f35f0b - test[4f12b380f1fb68c5]::run_test::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:607:43 [INFO] [stdout] 33: 0x57ca33f31624 - test[4f12b380f1fb68c5]::run_test::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:637:41 [INFO] [stdout] 34: 0x57ca33f31624 - std[e72de78501789eb0]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x57ca33f38b12 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 36: 0x57ca33f38b12 - ::{closure#1}::{closure#0}> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x57ca33f38b12 - std[e72de78501789eb0]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x57ca33f38b12 - std[e72de78501789eb0]::panicking::catch_unwind::<(), core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x57ca33f38b12 - std[e72de78501789eb0]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x57ca33f38b12 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 41: 0x57ca33f38b12 - ::{closure#1} as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x57ca347fda4f - + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 43: 0x57ca347fda4f - ::new::thread_start [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 44: 0x7f237e3ccaa4 - [INFO] [stdout] 45: 0x7f237e459a64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- llm_extractor::tests::test_extract_positions_real_api stdout ---- [INFO] [stdout] 2026-03-31T10:22:48.750358Z  INFO wsb_dd_analyser::llm_extractor: Extracting positions from post... [INFO] [stdout] 2026-03-31T10:22:48.891716Z DEBUG chat{gen_ai.operation.name="chat" gen_ai.input.messages="[{\"parts\":[{\"thought\":false,\"text\":\"You are an expert at extracting trading positions from WallStreetBets DD posts.\\n\\nExtract ALL trading positions mentioned in the text. Look for:\\n- Stock tickers (with or without $ prefix)\\n- Actions: Long, Short, Buy, Sell, Call, Put\\n- Quantities and prices\\n- Options details (strike price, expiration)\\n\\nReturn a JSON array of positions with this exact structure:\\n[\\n {\\n \\\"ticker\\\": \\\"GME\\\",\\n \\\"action\\\": \\\"Long\\\" | \\\"Short\\\" | \\\"Buy\\\" | \\\"Sell\\\" | \\\"Call\\\" | \\\"Put\\\",\\n \\\"quantity\\\": 100.0,\\n \\\"price\\\": 25.50,\\n \\\"strike_price\\\": 30.0,\\n \\\"expiration\\\": \\\"2024-12-20\\\"\\n }\\n]\\n\\nDon't wrap the response in a code block or backticks. Use null for any missing fields.\\n\\nRules:\\n- ticker: Uppercase stock symbol without $\\n- action: One of the 6 exact values above\\n- quantity: Number of shares/contracts (null if not mentioned)\\n- price: Entry price per share (null if not mentioned)\\n- strike_price: For options only (null for stocks)\\n- expiration: For options only in YYYY-MM-DD format (null for stocks)\\n- If no positions found, return an empty array []\\n- Be conservative - only extract clear position information\\n\\nNow extract trading positions from this WSB DD post:\\n\\nI'm going long on GME, bought 100 shares at $25.50.\\n Also bought some AAPL calls with strike $150 expiring 2024-12-20.\\n Short TSLA with 50 shares at $200.\"}],\"role\":\"user\"}]" gen_ai.input.messages="[{\"parts\":[{\"thought\":false,\"text\":\"You are an expert at extracting trading positions from WallStreetBets DD posts.\\n\\nExtract ALL trading positions mentioned in the text. Look for:\\n- Stock tickers (with or without $ prefix)\\n- Actions: Long, Short, Buy, Sell, Call, Put\\n- Quantities and prices\\n- Options details (strike price, expiration)\\n\\nReturn a JSON array of positions with this exact structure:\\n[\\n {\\n \\\"ticker\\\": \\\"GME\\\",\\n \\\"action\\\": \\\"Long\\\" | \\\"Short\\\" | \\\"Buy\\\" | \\\"Sell\\\" | \\\"Call\\\" | \\\"Put\\\",\\n \\\"quantity\\\": 100.0,\\n \\\"price\\\": 25.50,\\n \\\"strike_price\\\": 30.0,\\n \\\"expiration\\\": \\\"2024-12-20\\\"\\n }\\n]\\n\\nDon't wrap the response in a code block or backticks. Use null for any missing fields.\\n\\nRules:\\n- ticker: Uppercase stock symbol without $\\n- action: One of the 6 exact values above\\n- quantity: Number of shares/contracts (null if not mentioned)\\n- price: Entry price per share (null if not mentioned)\\n- strike_price: For options only (null for stocks)\\n- expiration: For options only in YYYY-MM-DD format (null for stocks)\\n- If no positions found, return an empty array []\\n- Be conservative - only extract clear position information\\n\\nNow extract trading positions from this WSB DD post:\\n\\nI'm going long on GME, bought 100 shares at $25.50.\\n Also bought some AAPL calls with strike $150 expiring 2024-12-20.\\n Short TSLA with 50 shares at $200.\"}],\"role\":\"user\"}]"}: rig::providers::gemini::completion: Sending completion request to Gemini API { [INFO] [stdout] "contents": [ [INFO] [stdout] { [INFO] [stdout] "parts": [ [INFO] [stdout] { [INFO] [stdout] "thought": false, [INFO] [stdout] "text": "You are an expert at extracting trading positions from WallStreetBets DD posts.\n\nExtract ALL trading positions mentioned in the text. Look for:\n- Stock tickers (with or without $ prefix)\n- Actions: Long, Short, Buy, Sell, Call, Put\n- Quantities and prices\n- Options details (strike price, expiration)\n\nReturn a JSON array of positions with this exact structure:\n[\n {\n \"ticker\": \"GME\",\n \"action\": \"Long\" | \"Short\" | \"Buy\" | \"Sell\" | \"Call\" | \"Put\",\n \"quantity\": 100.0,\n \"price\": 25.50,\n \"strike_price\": 30.0,\n \"expiration\": \"2024-12-20\"\n }\n]\n\nDon't wrap the response in a code block or backticks. Use null for any missing fields.\n\nRules:\n- ticker: Uppercase stock symbol without $\n- action: One of the 6 exact values above\n- quantity: Number of shares/contracts (null if not mentioned)\n- price: Entry price per share (null if not mentioned)\n- strike_price: For options only (null for stocks)\n- expiration: For options only in YYYY-MM-DD format (null for stocks)\n- If no positions found, return an empty array []\n- Be conservative - only extract clear position information\n\nNow extract trading positions from this WSB DD post:\n\nI'm going long on GME, bought 100 shares at $25.50.\n Also bought some AAPL calls with strike $150 expiring 2024-12-20.\n Short TSLA with 50 shares at $200." [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "role": "user" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "toolConfig": null, [INFO] [stdout] "generationConfig": {}, [INFO] [stdout] "safetySettings": null, [INFO] [stdout] "systemInstruction": null [INFO] [stdout] } [INFO] [stdout] 2026-03-31T10:22:48.891986Z DEBUG chat{gen_ai.operation.name="chat" gen_ai.input.messages="[{\"parts\":[{\"thought\":false,\"text\":\"You are an expert at extracting trading positions from WallStreetBets DD posts.\\n\\nExtract ALL trading positions mentioned in the text. Look for:\\n- Stock tickers (with or without $ prefix)\\n- Actions: Long, Short, Buy, Sell, Call, Put\\n- Quantities and prices\\n- Options details (strike price, expiration)\\n\\nReturn a JSON array of positions with this exact structure:\\n[\\n {\\n \\\"ticker\\\": \\\"GME\\\",\\n \\\"action\\\": \\\"Long\\\" | \\\"Short\\\" | \\\"Buy\\\" | \\\"Sell\\\" | \\\"Call\\\" | \\\"Put\\\",\\n \\\"quantity\\\": 100.0,\\n \\\"price\\\": 25.50,\\n \\\"strike_price\\\": 30.0,\\n \\\"expiration\\\": \\\"2024-12-20\\\"\\n }\\n]\\n\\nDon't wrap the response in a code block or backticks. Use null for any missing fields.\\n\\nRules:\\n- ticker: Uppercase stock symbol without $\\n- action: One of the 6 exact values above\\n- quantity: Number of shares/contracts (null if not mentioned)\\n- price: Entry price per share (null if not mentioned)\\n- strike_price: For options only (null for stocks)\\n- expiration: For options only in YYYY-MM-DD format (null for stocks)\\n- If no positions found, return an empty array []\\n- Be conservative - only extract clear position information\\n\\nNow extract trading positions from this WSB DD post:\\n\\nI'm going long on GME, bought 100 shares at $25.50.\\n Also bought some AAPL calls with strike $150 expiring 2024-12-20.\\n Short TSLA with 50 shares at $200.\"}],\"role\":\"user\"}]" gen_ai.input.messages="[{\"parts\":[{\"thought\":false,\"text\":\"You are an expert at extracting trading positions from WallStreetBets DD posts.\\n\\nExtract ALL trading positions mentioned in the text. Look for:\\n- Stock tickers (with or without $ prefix)\\n- Actions: Long, Short, Buy, Sell, Call, Put\\n- Quantities and prices\\n- Options details (strike price, expiration)\\n\\nReturn a JSON array of positions with this exact structure:\\n[\\n {\\n \\\"ticker\\\": \\\"GME\\\",\\n \\\"action\\\": \\\"Long\\\" | \\\"Short\\\" | \\\"Buy\\\" | \\\"Sell\\\" | \\\"Call\\\" | \\\"Put\\\",\\n \\\"quantity\\\": 100.0,\\n \\\"price\\\": 25.50,\\n \\\"strike_price\\\": 30.0,\\n \\\"expiration\\\": \\\"2024-12-20\\\"\\n }\\n]\\n\\nDon't wrap the response in a code block or backticks. Use null for any missing fields.\\n\\nRules:\\n- ticker: Uppercase stock symbol without $\\n- action: One of the 6 exact values above\\n- quantity: Number of shares/contracts (null if not mentioned)\\n- price: Entry price per share (null if not mentioned)\\n- strike_price: For options only (null for stocks)\\n- expiration: For options only in YYYY-MM-DD format (null for stocks)\\n- If no positions found, return an empty array []\\n- Be conservative - only extract clear position information\\n\\nNow extract trading positions from this WSB DD post:\\n\\nI'm going long on GME, bought 100 shares at $25.50.\\n Also bought some AAPL calls with strike $150 expiring 2024-12-20.\\n Short TSLA with 50 shares at $200.\"}],\"role\":\"user\"}]"}: rig::providers::gemini::client: POST https://generativelanguage.googleapis.com//v1beta/models/gemini-2.5-flash-lite:generateContent?key=**** [INFO] [stdout] 2026-03-31T10:22:48.892432Z DEBUG chat{gen_ai.operation.name="chat" gen_ai.input.messages="[{\"parts\":[{\"thought\":false,\"text\":\"You are an expert at extracting trading positions from WallStreetBets DD posts.\\n\\nExtract ALL trading positions mentioned in the text. Look for:\\n- Stock tickers (with or without $ prefix)\\n- Actions: Long, Short, Buy, Sell, Call, Put\\n- Quantities and prices\\n- Options details (strike price, expiration)\\n\\nReturn a JSON array of positions with this exact structure:\\n[\\n {\\n \\\"ticker\\\": \\\"GME\\\",\\n \\\"action\\\": \\\"Long\\\" | \\\"Short\\\" | \\\"Buy\\\" | \\\"Sell\\\" | \\\"Call\\\" | \\\"Put\\\",\\n \\\"quantity\\\": 100.0,\\n \\\"price\\\": 25.50,\\n \\\"strike_price\\\": 30.0,\\n \\\"expiration\\\": \\\"2024-12-20\\\"\\n }\\n]\\n\\nDon't wrap the response in a code block or backticks. Use null for any missing fields.\\n\\nRules:\\n- ticker: Uppercase stock symbol without $\\n- action: One of the 6 exact values above\\n- quantity: Number of shares/contracts (null if not mentioned)\\n- price: Entry price per share (null if not mentioned)\\n- strike_price: For options only (null for stocks)\\n- expiration: For options only in YYYY-MM-DD format (null for stocks)\\n- If no positions found, return an empty array []\\n- Be conservative - only extract clear position information\\n\\nNow extract trading positions from this WSB DD post:\\n\\nI'm going long on GME, bought 100 shares at $25.50.\\n Also bought some AAPL calls with strike $150 expiring 2024-12-20.\\n Short TSLA with 50 shares at $200.\"}],\"role\":\"user\"}]" gen_ai.input.messages="[{\"parts\":[{\"thought\":false,\"text\":\"You are an expert at extracting trading positions from WallStreetBets DD posts.\\n\\nExtract ALL trading positions mentioned in the text. Look for:\\n- Stock tickers (with or without $ prefix)\\n- Actions: Long, Short, Buy, Sell, Call, Put\\n- Quantities and prices\\n- Options details (strike price, expiration)\\n\\nReturn a JSON array of positions with this exact structure:\\n[\\n {\\n \\\"ticker\\\": \\\"GME\\\",\\n \\\"action\\\": \\\"Long\\\" | \\\"Short\\\" | \\\"Buy\\\" | \\\"Sell\\\" | \\\"Call\\\" | \\\"Put\\\",\\n \\\"quantity\\\": 100.0,\\n \\\"price\\\": 25.50,\\n \\\"strike_price\\\": 30.0,\\n \\\"expiration\\\": \\\"2024-12-20\\\"\\n }\\n]\\n\\nDon't wrap the response in a code block or backticks. Use null for any missing fields.\\n\\nRules:\\n- ticker: Uppercase stock symbol without $\\n- action: One of the 6 exact values above\\n- quantity: Number of shares/contracts (null if not mentioned)\\n- price: Entry price per share (null if not mentioned)\\n- strike_price: For options only (null for stocks)\\n- expiration: For options only in YYYY-MM-DD format (null for stocks)\\n- If no positions found, return an empty array []\\n- Be conservative - only extract clear position information\\n\\nNow extract trading positions from this WSB DD post:\\n\\nI'm going long on GME, bought 100 shares at $25.50.\\n Also bought some AAPL calls with strike $150 expiring 2024-12-20.\\n Short TSLA with 50 shares at $200.\"}],\"role\":\"user\"}]"}: reqwest::connect: starting new connection: https://generativelanguage.googleapis.com/ [INFO] [stdout] [INFO] [stdout] thread 'llm_extractor::tests::test_extract_positions_real_api' (21) panicked at src/llm_extractor.rs:119:65: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: LLM extraction failed: CompletionError: HttpError: Http client error: error sending request for url (https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-lite:generateContent?key=AIzaSyAMEqZr0RnqBa6NsoMV4ibnVhGKXR98zeY) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/llm_extractor.rs:82:23 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x57ca347fe69a - std[e72de78501789eb0]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x57ca347fe69a - std[e72de78501789eb0]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x57ca347fe69a - std[e72de78501789eb0]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x57ca347fe69a - <::print::DisplayBacktrace as core[6aaeda2c7ad07a48]::fmt::Display>::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x57ca3481509a - ::fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x57ca3481509a - core[6aaeda2c7ad07a48]::fmt::write [INFO] [stdout] 6: 0x57ca34803542 - std[e72de78501789eb0]::io::default_write_fmt::> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x57ca34803542 - as std[e72de78501789eb0]::io::Write>::write_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x57ca347db53f - ::print [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x57ca347db53f - std[e72de78501789eb0]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x57ca347f5f39 - std[e72de78501789eb0]::panicking::default_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x57ca33f3543c - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x57ca33f3543c - test[4f12b380f1fb68c5]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x57ca347f61b2 - core[6aaeda2c7ad07a48]::ops::function::Fn<(&'a std[e72de78501789eb0]::panic::PanicHookInfo<'b>,), Output = ()> + core[6aaeda2c7ad07a48]::marker::Sync + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::Fn<(&std[e72de78501789eb0]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x57ca347f61b2 - std[e72de78501789eb0]::panicking::panic_with_hook [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x57ca347db5f8 - std[e72de78501789eb0]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x57ca347d2b59 - std[e72de78501789eb0]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x57ca347dc56d - __rustc[78a4cf188af856fc]::rust_begin_unwind [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x57ca3481588c - core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x57ca348155d2 - core[6aaeda2c7ad07a48]::result::unwrap_failed [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1867:5 [INFO] [stdout] 20: 0x57ca33ee8de4 - , eyre[1677e6c05327be41]::Report>>::unwrap [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1233:23 [INFO] [stdout] 21: 0x57ca33ee8de4 - wsb_dd_analyser[dc7e78b65de964ab]::llm_extractor::tests::test_extract_positions_real_api::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/llm_extractor.rs:119:65 [INFO] [stdout] 22: 0x57ca33f0ea62 - > as core[6aaeda2c7ad07a48]::future::future::Future>::poll [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/future/future.rs:133:9 [INFO] [stdout] 23: 0x57ca33f0eadd - >> as core[6aaeda2c7ad07a48]::future::future::Future>::poll [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/future/future.rs:133:9 [INFO] [stdout] 24: 0x57ca33f079ed - ::block_on::>>>::{closure#0}::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:742:70 [INFO] [stdout] 25: 0x57ca33f078eb - tokio[2e207f431ca8adc6]::task::coop::with_budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/task/coop/mod.rs:167:5 [INFO] [stdout] 26: 0x57ca33f078eb - tokio[2e207f431ca8adc6]::task::coop::budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/task/coop/mod.rs:133:5 [INFO] [stdout] 27: 0x57ca33f078eb - ::block_on::>>>::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:742:25 [INFO] [stdout] 28: 0x57ca33f03c30 - ::enter::, ::block_on>>>::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:432:19 [INFO] [stdout] 29: 0x57ca33f069dd - ::block_on::>>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:741:44 [INFO] [stdout] 30: 0x57ca33f05cd4 - ::enter::<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:829:68 [INFO] [stdout] 31: 0x57ca33ee822b - >::set::<::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/context/scoped.rs:40:9 [INFO] [stdout] 32: 0x57ca33eee149 - tokio[2e207f431ca8adc6]::runtime::context::set_scheduler::<(alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/context.rs:176:38 [INFO] [stdout] 33: 0x57ca33ee6022 - >::try_with::, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/local.rs:462:12 [INFO] [stdout] 34: 0x57ca33ee5bae - >::with::, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>)> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/local.rs:426:20 [INFO] [stdout] 35: 0x57ca33eecf6d - tokio[2e207f431ca8adc6]::runtime::context::set_scheduler::<(alloc[28d2dab30c1dc666]::boxed::Box, core[6aaeda2c7ad07a48]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>>::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/context.rs:176:17 [INFO] [stdout] 36: 0x57ca33f04cd0 - ::enter::<::block_on>>>::{closure#0}, core[6aaeda2c7ad07a48]::option::Option<()>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:829:27 [INFO] [stdout] 37: 0x57ca33f04fc6 - ::block_on::>>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:729:24 [INFO] [stdout] 38: 0x57ca33f058e0 - ::block_on::>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:200:33 [INFO] [stdout] 39: 0x57ca33ef5003 - tokio[2e207f431ca8adc6]::runtime::context::runtime::enter_runtime::<::block_on>>::{closure#0}, ()> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/context/runtime.rs:65:16 [INFO] [stdout] 40: 0x57ca33f03761 - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:188:9 [INFO] [stdout] 41: 0x57ca33eef234 - ::block_on_inner::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/runtime.rs:356:52 [INFO] [stdout] 42: 0x57ca33eef3ff - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/runtime.rs:330:18 [INFO] [stdout] 43: 0x57ca33eeab43 - wsb_dd_analyser[dc7e78b65de964ab]::llm_extractor::tests::test_extract_positions_real_api [INFO] [stdout] at /opt/rustwide/workdir/src/llm_extractor.rs:130:55 [INFO] [stdout] 44: 0x57ca33ee8a87 - wsb_dd_analyser[dc7e78b65de964ab]::llm_extractor::tests::test_extract_positions_real_api::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/llm_extractor.rs:112:47 [INFO] [stdout] 45: 0x57ca33edd0a6 - >::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 46: 0x57ca33f2951b - core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 47: 0x57ca33f2951b - test[4f12b380f1fb68c5]::__rust_begin_short_backtrace::, fn() -> core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:663:18 [INFO] [stdout] 48: 0x57ca33f35f0b - test[4f12b380f1fb68c5]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:74 [INFO] [stdout] 49: 0x57ca33f35f0b - as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 50: 0x57ca33f35f0b - std[e72de78501789eb0]::panicking::catch_unwind::do_call::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 51: 0x57ca33f35f0b - std[e72de78501789eb0]::panicking::catch_unwind::, core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 52: 0x57ca33f35f0b - std[e72de78501789eb0]::panic::catch_unwind::, core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 53: 0x57ca33f35f0b - test[4f12b380f1fb68c5]::run_test_in_process [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:686:27 [INFO] [stdout] 54: 0x57ca33f35f0b - test[4f12b380f1fb68c5]::run_test::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:607:43 [INFO] [stdout] 55: 0x57ca33f31624 - test[4f12b380f1fb68c5]::run_test::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/test/src/lib.rs:637:41 [INFO] [stdout] 56: 0x57ca33f31624 - std[e72de78501789eb0]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 57: 0x57ca33f38b12 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 58: 0x57ca33f38b12 - ::{closure#1}::{closure#0}> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 59: 0x57ca33f38b12 - std[e72de78501789eb0]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:581:40 [INFO] [stdout] 60: 0x57ca33f38b12 - std[e72de78501789eb0]::panicking::catch_unwind::<(), core[6aaeda2c7ad07a48]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panicking.rs:544:19 [INFO] [stdout] 61: 0x57ca33f38b12 - std[e72de78501789eb0]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/panic.rs:359:14 [INFO] [stdout] 62: 0x57ca33f38b12 - std[e72de78501789eb0]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 63: 0x57ca33f38b12 - ::{closure#1} as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 64: 0x57ca347fda4f - + core[6aaeda2c7ad07a48]::marker::Send> as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 65: 0x57ca347fda4f - ::new::thread_start [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 66: 0x7f237e3ccaa4 - [INFO] [stdout] 67: 0x7f237e459a64 - clone [INFO] [stdout] 68: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] cache::tests::test_cache_round_trip [INFO] [stdout] llm_extractor::tests::test_extract_positions_real_api [INFO] [stdout] [INFO] [stdout] test result: FAILED. 2 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--lib` [INFO] running `Command { std: "docker" "inspect" "702803b2054527e8d8c5b3e0206795babaffab2287035373aec51036a66a2bf1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "702803b2054527e8d8c5b3e0206795babaffab2287035373aec51036a66a2bf1", kill_on_drop: false }` [INFO] [stdout] 702803b2054527e8d8c5b3e0206795babaffab2287035373aec51036a66a2bf1