[INFO] cloning repository https://github.com/graysurf/nils-alfredworkflow [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/graysurf/nils-alfredworkflow" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgraysurf%2Fnils-alfredworkflow", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgraysurf%2Fnils-alfredworkflow'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 890a6e0d4bbdb9b857971c5e1520b2ef43c9a6a7 [INFO] testing graysurf/nils-alfredworkflow against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgraysurf%2Fnils-alfredworkflow" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-7-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/graysurf/nils-alfredworkflow [INFO] finished tweaking git repo https://github.com/graysurf/nils-alfredworkflow [INFO] tweaked toml for git repo https://github.com/graysurf/nils-alfredworkflow written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/graysurf/nils-alfredworkflow on toolchain f9988fefd3add01f414f52b414308e7872622fee [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/graysurf/nils-alfredworkflow 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" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded zmij v1.0.20 [INFO] [stderr] Downloaded nils-memo-cli v0.7.3 [INFO] [stderr] Downloaded rusqlite v0.39.0 [INFO] [stderr] Downloaded rsqlite-vfs v0.1.0 [INFO] [stderr] Downloaded hashlink v0.11.0 [INFO] [stderr] Downloaded nils-common v0.7.3 [INFO] [stderr] Downloaded phf_shared v0.12.1 [INFO] [stderr] Downloaded clap_complete v4.6.2 [INFO] [stderr] Downloaded phf v0.12.1 [INFO] [stderr] Downloaded libc v0.2.181 [INFO] [stderr] Downloaded chrono-tz v0.10.4 [INFO] [stderr] Downloaded rustls-webpki v0.103.13 [INFO] [stderr] Downloaded sqlite-wasm-rs v0.5.2 [INFO] [stderr] Downloaded libsqlite3-sys v0.37.0 [INFO] [stderr] Downloaded quinn-proto v0.11.14 [INFO] [stderr] Downloaded rand v0.9.3 [INFO] [stderr] Downloaded uuid v1.23.1 [INFO] [stderr] Downloaded rand v0.10.1 [INFO] [stderr] Downloaded rust_decimal v1.41.0 [INFO] [stderr] Downloaded rkyv v0.7.46 [INFO] [stderr] Downloaded rkyv_derive v0.7.46 [INFO] [stderr] Downloaded yup-oauth2 v12.1.2 [INFO] [stderr] Downloaded wiremock v0.6.5 [INFO] [stderr] Downloaded deadpool v0.12.3 [INFO] [stderr] Downloaded deadpool-runtime v0.1.4 [INFO] [stderr] Downloaded keyring v3.6.3 [INFO] [stderr] Downloaded serde_with v3.17.0 [INFO] [stderr] Downloaded serde_with_macros v3.17.0 [INFO] [stderr] Downloaded ref-cast v1.0.25 [INFO] [stderr] Downloaded schemars v1.2.1 [INFO] [stderr] Downloaded ref-cast-impl v1.0.25 [INFO] [stderr] Downloaded dyn-clone v1.0.20 [INFO] [stderr] Downloaded directories v6.0.0 [INFO] [stderr] Downloaded open v5.3.4 [INFO] [stderr] Downloaded google-gmail1 v7.0.0+20251215 [INFO] [stderr] Downloaded schemars v0.9.0 [INFO] [stderr] Downloaded google-drive3 v7.0.0+20251218 [INFO] [stderr] Downloaded google-apis-common v8.0.0 [INFO] [stderr] Downloaded mail-builder v0.4.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8f7879fb580b25ebb84e73996146138e7e631f95045415250aba69c3890a60e1 [INFO] running `Command { std: "docker" "start" "-a" "8f7879fb580b25ebb84e73996146138e7e631f95045415250aba69c3890a60e1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8f7879fb580b25ebb84e73996146138e7e631f95045415250aba69c3890a60e1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8f7879fb580b25ebb84e73996146138e7e631f95045415250aba69c3890a60e1", kill_on_drop: false }` [INFO] [stdout] 8f7879fb580b25ebb84e73996146138e7e631f95045415250aba69c3890a60e1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5bf5fa288b8ef167273ecc83c47cfc1865c1af4ea8fb3f2dd4d055e0132727ec [INFO] running `Command { std: "docker" "start" "-a" "5bf5fa288b8ef167273ecc83c47cfc1865c1af4ea8fb3f2dd4d055e0132727ec", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling unicode-ident v1.0.23 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling libc v0.2.181 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling zmij v1.0.20 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling cc v1.2.55 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling pin-project-lite v0.2.16 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling litemap v0.8.1 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling writeable v0.6.2 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling try-lock v0.2.5 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling utf8_iter v1.0.4 [INFO] [stderr] Compiling ipnet v2.11.0 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling rustls-native-certs v0.8.3 [INFO] [stderr] Compiling mime v0.3.17 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling iri-string v0.7.10 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling siphasher v1.0.2 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling phf_shared v0.12.1 [INFO] [stderr] Compiling chrono-tz v0.10.4 [INFO] [stderr] Compiling phf v0.12.1 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling seahash v4.1.0 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling rand_core v0.10.0 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling hashlink v0.11.0 [INFO] [stderr] Compiling is-docker v0.2.0 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling cpufeatures v0.3.0 [INFO] [stderr] Compiling rust_decimal v1.41.0 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling chacha20 v0.10.0 [INFO] [stderr] Compiling is-wsl v0.4.0 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling pathdiff v0.2.3 [INFO] [stderr] Compiling rand v0.10.1 [INFO] [stderr] Compiling directories v6.0.0 [INFO] [stderr] Compiling open v5.3.4 [INFO] [stderr] Compiling uuid v1.23.1 [INFO] [stderr] Compiling keyring v3.6.3 [INFO] [stderr] Compiling nils-alfred-plist v1.2.8 (/opt/rustwide/workdir/crates/alfred-plist) [INFO] [stderr] Compiling libsqlite3-sys v0.37.0 [INFO] [stderr] Compiling gethostname v1.1.0 [INFO] [stderr] Compiling mail-builder v0.4.4 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.21.3 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling prost-derive v0.14.3 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling nils-common v0.7.3 [INFO] [stderr] Compiling prost v0.14.3 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling clap_complete v4.6.2 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling darling_macro v0.21.3 [INFO] [stderr] Compiling darling v0.21.3 [INFO] [stderr] Compiling serde_with_macros v3.17.0 [INFO] [stderr] Compiling rustls-webpki v0.103.13 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling serde_with v3.17.0 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling nils-alfred-core v1.2.8 (/opt/rustwide/workdir/crates/alfred-core) [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling nils-workflow-common v1.2.8 (/opt/rustwide/workdir/crates/workflow-common) [INFO] [stderr] Compiling nils-epoch-cli v1.2.8 (/opt/rustwide/workdir/crates/epoch-cli) [INFO] [stderr] Compiling nils-workflow-readme-cli v1.2.8 (/opt/rustwide/workdir/crates/workflow-readme-cli) [INFO] [stderr] Compiling nils-cambridge-cli v1.2.8 (/opt/rustwide/workdir/crates/cambridge-cli) [INFO] [stderr] Compiling nils-randomer-cli v1.2.8 (/opt/rustwide/workdir/crates/randomer-cli) [INFO] [stderr] Compiling nils-workflow-cli v1.2.8 (/opt/rustwide/workdir/crates/workflow-cli) [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling rusqlite v0.39.0 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling yup-oauth2 v12.1.2 [INFO] [stderr] Compiling nils-memo-cli v0.7.3 [INFO] [stderr] Compiling nils-timezone-cli v1.2.8 (/opt/rustwide/workdir/crates/timezone-cli) [INFO] [stderr] Compiling nils-weather-cli v1.2.8 (/opt/rustwide/workdir/crates/weather-cli) [INFO] [stderr] Compiling nils-market-cli v1.2.8 (/opt/rustwide/workdir/crates/market-cli) [INFO] [stderr] Compiling nils-bilibili-cli v1.2.8 (/opt/rustwide/workdir/crates/bilibili-cli) [INFO] [stderr] Compiling nils-steam-cli v1.2.8 (/opt/rustwide/workdir/crates/steam-cli) [INFO] [stderr] Compiling nils-youtube-cli v1.2.8 (/opt/rustwide/workdir/crates/youtube-cli) [INFO] [stderr] Compiling nils-bangumi-cli v1.2.8 (/opt/rustwide/workdir/crates/bangumi-cli) [INFO] [stderr] Compiling nils-brave-cli v1.2.8 (/opt/rustwide/workdir/crates/brave-cli) [INFO] [stderr] Compiling nils-wiki-cli v1.2.8 (/opt/rustwide/workdir/crates/wiki-cli) [INFO] [stderr] Compiling nils-quote-cli v1.2.8 (/opt/rustwide/workdir/crates/quote-cli) [INFO] [stderr] Compiling nils-spotify-cli v1.2.8 (/opt/rustwide/workdir/crates/spotify-cli) [INFO] [stderr] Compiling google-apis-common v8.0.0 [INFO] [stderr] Compiling nils-memo-workflow-cli v1.2.8 (/opt/rustwide/workdir/crates/memo-workflow-cli) [INFO] [stderr] Compiling google-gmail1 v7.0.0+20251215 [INFO] [stderr] Compiling google-drive3 v7.0.0+20251218 [INFO] [stderr] Compiling nils-google-cli v1.2.8 (/opt/rustwide/workdir/crates/google-cli) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 42s [INFO] running `Command { std: "docker" "inspect" "5bf5fa288b8ef167273ecc83c47cfc1865c1af4ea8fb3f2dd4d055e0132727ec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5bf5fa288b8ef167273ecc83c47cfc1865c1af4ea8fb3f2dd4d055e0132727ec", kill_on_drop: false }` [INFO] [stdout] 5bf5fa288b8ef167273ecc83c47cfc1865c1af4ea8fb3f2dd4d055e0132727ec [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 94a2bf8f56ca6a845d8afa1f0da690a3c239984f26fc84695768ae9f14ae003d [INFO] running `Command { std: "docker" "start" "-a" "94a2bf8f56ca6a845d8afa1f0da690a3c239984f26fc84695768ae9f14ae003d", kill_on_drop: false }` [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling deadpool-runtime v0.1.4 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling nils-epoch-cli v1.2.8 (/opt/rustwide/workdir/crates/epoch-cli) [INFO] [stderr] Compiling nils-randomer-cli v1.2.8 (/opt/rustwide/workdir/crates/randomer-cli) [INFO] [stderr] Compiling nils-alfred-plist v1.2.8 (/opt/rustwide/workdir/crates/alfred-plist) [INFO] [stderr] Compiling rusqlite v0.39.0 [INFO] [stderr] Compiling deadpool v0.12.3 [INFO] [stderr] Compiling nils-alfred-core v1.2.8 (/opt/rustwide/workdir/crates/alfred-core) [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling nils-memo-cli v0.7.3 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling nils-memo-workflow-cli v1.2.8 (/opt/rustwide/workdir/crates/memo-workflow-cli) [INFO] [stderr] Compiling tempfile v3.25.0 [INFO] [stderr] Compiling gethostname v1.1.0 [INFO] [stderr] Compiling mail-builder v0.4.4 [INFO] [stderr] Compiling nils-workflow-readme-cli v1.2.8 (/opt/rustwide/workdir/crates/workflow-readme-cli) [INFO] [stderr] Compiling nils-workflow-cli v1.2.8 (/opt/rustwide/workdir/crates/workflow-cli) [INFO] [stderr] Compiling nils-cambridge-cli v1.2.8 (/opt/rustwide/workdir/crates/cambridge-cli) [INFO] [stderr] Compiling nils-timezone-cli v1.2.8 (/opt/rustwide/workdir/crates/timezone-cli) [INFO] [stderr] Compiling nils-workflow-common v1.2.8 (/opt/rustwide/workdir/crates/workflow-common) [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling wiremock v0.6.5 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling yup-oauth2 v12.1.2 [INFO] [stderr] Compiling nils-youtube-cli v1.2.8 (/opt/rustwide/workdir/crates/youtube-cli) [INFO] [stderr] Compiling nils-bangumi-cli v1.2.8 (/opt/rustwide/workdir/crates/bangumi-cli) [INFO] [stderr] Compiling nils-steam-cli v1.2.8 (/opt/rustwide/workdir/crates/steam-cli) [INFO] [stderr] Compiling nils-spotify-cli v1.2.8 (/opt/rustwide/workdir/crates/spotify-cli) [INFO] [stderr] Compiling nils-bilibili-cli v1.2.8 (/opt/rustwide/workdir/crates/bilibili-cli) [INFO] [stderr] Compiling nils-weather-cli v1.2.8 (/opt/rustwide/workdir/crates/weather-cli) [INFO] [stderr] Compiling nils-market-cli v1.2.8 (/opt/rustwide/workdir/crates/market-cli) [INFO] [stderr] Compiling nils-quote-cli v1.2.8 (/opt/rustwide/workdir/crates/quote-cli) [INFO] [stderr] Compiling nils-brave-cli v1.2.8 (/opt/rustwide/workdir/crates/brave-cli) [INFO] [stderr] Compiling nils-wiki-cli v1.2.8 (/opt/rustwide/workdir/crates/wiki-cli) [INFO] [stderr] Compiling google-apis-common v8.0.0 [INFO] [stderr] Compiling google-drive3 v7.0.0+20251218 [INFO] [stderr] Compiling google-gmail1 v7.0.0+20251215 [INFO] [stderr] Compiling nils-google-cli v1.2.8 (/opt/rustwide/workdir/crates/google-cli) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 56.53s [INFO] running `Command { std: "docker" "inspect" "94a2bf8f56ca6a845d8afa1f0da690a3c239984f26fc84695768ae9f14ae003d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "94a2bf8f56ca6a845d8afa1f0da690a3c239984f26fc84695768ae9f14ae003d", kill_on_drop: false }` [INFO] [stdout] 94a2bf8f56ca6a845d8afa1f0da690a3c239984f26fc84695768ae9f14ae003d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 33f442fd891f5efe014a0f992dfcc97afd4a770f94a213799371288ad1361dfb [INFO] running `Command { std: "docker" "start" "-a" "33f442fd891f5efe014a0f992dfcc97afd4a770f94a213799371288ad1361dfb", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.51s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/alfred_core-09fdd1a26cafb88a) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test tests::feedback_single_error_creates_non_valid_item ... ok [INFO] [stdout] test tests::modifier_and_variables_are_serialized ... ok [INFO] [stdout] test tests::item_optional_fields_serialize_only_when_present ... ok [INFO] [stdout] test tests::feedback_serializes ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/alfred_plist-cd566d3d394b8fc9) [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/bangumi_cli-603da6b082a14cdc) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test tests::replaces_known_tokens ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 49 tests [INFO] [stdout] test bangumi_api::tests::auth_header_omits_bearer_when_api_key_missing ... ok [INFO] [stdout] test bangumi_api::tests::auth_header_includes_bearer_and_user_agent_when_api_key_exists ... ok [INFO] [stdout] test bangumi_api::tests::bangumi_api_build_v0_payload_uses_keyword_and_type_filter ... ok [INFO] [stdout] test bangumi_api::tests::fallback_always_policy_forces_legacy_for_any_primary_error ... ok [INFO] [stdout] test bangumi_api::tests::bangumi_api_parse_legacy_response_reads_rating_object_when_rank_and_score_missing ... ok [INFO] [stdout] test bangumi_api::tests::bangumi_api_parse_v0_response_handles_nullable_fields_and_url_fallback ... ok [INFO] [stdout] test bangumi_api::tests::fallback_auto_policy_does_not_mask_rate_limit_errors ... ok [INFO] [stdout] test bangumi_api::tests::bangumi_api_build_v0_payload_omits_type_filter_for_all_query ... ok [INFO] [stdout] test config::tests::cache_dir_resolution_expands_home_prefix_for_explicit_path ... ok [INFO] [stdout] test config::tests::cache_dir_resolution_prefers_explicit_bangumi_cache_dir ... ok [INFO] [stdout] test config::tests::cache_dir_resolution_requires_any_cache_home_source ... ok [INFO] [stdout] test config::tests::cache_dir_resolution_uses_alfred_workflow_cache_subdir_when_available ... ok [INFO] [stdout] test config::tests::config_clamps_max_results_and_timeout_ranges ... ok [INFO] [stdout] test config::tests::config_parses_api_fallback_policy_values ... ok [INFO] [stdout] test config::tests::config_uses_defaults_when_optional_env_missing ... ok [INFO] [stdout] test config::tests::config_rejects_invalid_numeric_fields ... ok [INFO] [stdout] test feedback::tests::cmd_modifier_absent_when_summary_missing ... ok [INFO] [stdout] test feedback::tests::cmd_modifier_present_when_summary_exists ... ok [INFO] [stdout] test feedback::tests::modifier_adds_ctrl_metadata_only_when_rank_or_score_exists ... ok [INFO] [stdout] test bangumi_api::tests::bangumi_api_http_error_extracts_service_message ... ok [INFO] [stdout] test config::tests::api_key_precedence_prefers_workflow_value_over_inherited_key ... ok [INFO] [stdout] test bangumi_api::tests::fallback_auto_policy_triggers_legacy_on_invalid_v0_response ... ok [INFO] [stdout] test bangumi_api::tests::fallback_never_policy_disables_legacy_even_for_schema_regression ... ok [INFO] [stdout] test config::tests::api_key_precedence_returns_none_when_workflow_value_is_blank ... ok [INFO] [stdout] test feedback::tests::feedback_keeps_rendering_when_icon_download_fails ... ok [INFO] [stdout] test feedback::tests::feedback_cache_ttl_integration_prefers_cached_file_on_repeated_mapping ... ok [INFO] [stdout] test feedback::tests::subtitle_includes_type_tag_and_localized_name_in_all_mode ... ok [INFO] [stdout] test feedback::tests::subtitle_truncation_is_single_line_and_deterministic ... ok [INFO] [stdout] test image_cache::tests::image_cache_cleanup_removes_oldest_entries_when_size_limit_exceeded ... ok [INFO] [stdout] test input::tests::input_parser_defaults_to_all_type_when_prefix_not_present ... ok [INFO] [stdout] test input::tests::input_parser_maps_supported_subject_types_to_bangumi_values ... ok [INFO] [stdout] test input::tests::input_parser_parses_legacy_alias_tokens_case_insensitively ... ok [INFO] [stdout] test image_cache::tests::image_cache_resolves_and_reuses_file_within_ttl_window ... ok [INFO] [stdout] test image_cache::tests::cache_ttl_expired_file_is_refetched ... ok [INFO] [stdout] test input::tests::input_parser_rejects_empty_query_input ... ok [INFO] [stdout] test feedback::tests::feedback_no_results_returns_non_actionable_guidance_row ... ok [INFO] [stdout] test input::tests::input_parser_rejects_invalid_type_token ... ok [INFO] [stdout] test input::tests::input_parser_rejects_missing_query_after_type_token ... ok [INFO] [stdout] test input::tests::input_parser_supports_bracket_type_prefix_in_query_mode ... ok [INFO] [stdout] test input::tests::input_parser_supports_bracketless_type_prefix_in_query_mode ... ok [INFO] [stdout] test input::tests::input_parser_supports_colon_type_prefix_in_query_mode ... ok [INFO] [stdout] test input::tests::input_parser_supports_colon_type_prefix_with_surrounding_whitespace ... ok [INFO] [stdout] test input::tests::input_parser_treats_unknown_colon_prefix_as_plain_query ... ok [INFO] [stdout] test config::tests::cache_dir_resolution_falls_back_to_xdg_cache_home_then_home_cache ... ok [INFO] [stdout] test feedback::tests::feedback_applies_local_icon_when_cache_manager_succeeds ... ok [INFO] [stdout] test input::tests::input_parser_treats_unknown_bracket_prefix_as_plain_query ... ok [INFO] [stdout] test image_cache::tests::image_fallback_uses_v0_subject_image_endpoint_when_payload_image_missing ... ok [INFO] [stdout] test feedback::tests::feedback_maps_subjects_to_alfred_item_fields ... ok [INFO] [stdout] test bangumi_api::tests::fallback_reports_both_primary_and_legacy_errors_when_both_fail ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/bangumi_cli-50a177299d033390) [INFO] [stdout] [INFO] [stdout] test result: ok. 49 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-8722a25e8365f7c0) [INFO] [stdout] test tests::main_service_error_envelope_has_required_error_fields ... ok [INFO] [stdout] test tests::main_maps_http_api_failures_to_runtime_error_kind ... ok [INFO] [stdout] test tests::main_search_service_json_mode_wraps_result_in_v1_envelope ... ok [INFO] [stdout] test tests::main_query_command_outputs_feedback_json_contract ... ok [INFO] [stdout] test tests::main_rejects_empty_query_as_user_error ... ok [INFO] [stdout] test tests::main_surfaces_config_errors_with_user_exit_kind ... ok [INFO] [stdout] test tests::main_help_flag_is_supported ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test live_api::live_api_query_uses_real_bangumi_key_and_returns_items_array ... ignored, requires network and BANGUMI_API_KEY [INFO] [stdout] test live_api::live_api_search_command_works_with_explicit_type_and_key ... ignored, requires network and BANGUMI_API_KEY [INFO] [stdout] test cli_contract::alfred_mode_keeps_stderr_error_behavior ... ok [INFO] [stdout] test cli_contract::service_json_error_envelope_has_required_keys_and_no_secret_leak ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/bilibili_cli-e806246d9070ff2b) [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 18 tests [INFO] [stdout] test bilibili_api::tests::bilibili_api_builds_query_params_without_uid_when_missing ... ok [INFO] [stdout] test bilibili_api::tests::bilibili_api_parser_handles_missing_rows_as_empty_result ... ok [INFO] [stdout] test bilibili_api::tests::bilibili_api_parser_dedupes_and_normalizes_terms ... ok [INFO] [stdout] test bilibili_api::tests::bilibili_api_builds_expected_query_params ... ok [INFO] [stdout] test bilibili_api::tests::bilibili_api_parser_rejects_invalid_json ... ok [INFO] [stdout] test bilibili_api::tests::bilibili_api_parser_surfaces_http_status_failures ... ok [INFO] [stdout] test bilibili_api::tests::bilibili_api_parser_surfaces_api_code_failures ... ok [INFO] [stdout] test config::tests::config_clamps_max_results_into_supported_range ... ok [INFO] [stdout] test config::tests::config_clamps_timeout_ms_into_supported_range ... ok [INFO] [stdout] test config::tests::config_rejects_non_numeric_max_results ... ok [INFO] [stdout] test config::tests::config_rejects_non_numeric_timeout_ms ... ok [INFO] [stdout] test bilibili_api::tests::bilibili_api_parser_obeys_max_results_limit ... ok [INFO] [stdout] test config::tests::config_uses_defaults_when_optional_values_are_missing ... ok [INFO] [stdout] test feedback::tests::error_feedback_returns_single_invalid_item ... ok [INFO] [stdout] test config::tests::config_uses_trimmed_uid_when_present ... ok [INFO] [stdout] test feedback::tests::feedback_maps_suggestions_to_alfred_items ... ok [INFO] [stdout] test feedback::tests::feedback_no_results_returns_direct_search_item ... ok [INFO] [stdout] test feedback::tests::url_builder_encodes_query_for_bilibili_search ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/bilibili_cli-5be0302aebeed07f) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test tests::main_query_command_rejects_empty_query ... ok [INFO] [stdout] test tests::main_query_command_surfaces_runtime_error ... ok [INFO] [stdout] test tests::main_query_command_surfaces_config_error_as_user_error ... ok [INFO] [stdout] test tests::main_query_command_supports_service_json_error_mode ... ok [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-a32763e157ce095f) [INFO] [stdout] test tests::main_search_command_reuses_same_pipeline ... ok [INFO] [stdout] test tests::main_query_command_outputs_feedback_json_contract ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test cli_contract::service_json_error_envelope_has_required_keys_and_no_secret_leak ... ok [INFO] [stdout] test cli_contract::alfred_mode_keeps_stderr_error_behavior ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/brave_cli-d18407892a012dbf) [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 35 tests [INFO] [stdout] test brave_api::tests::brave_api_parse_search_response_extracts_result_fields ... ok [INFO] [stdout] test brave_api::tests::brave_api_build_query_params_follows_contract ... ok [INFO] [stdout] test brave_api::tests::brave_api_parse_search_response_rejects_invalid_success_json ... ok [INFO] [stdout] test config::tests::config_parses_safesearch_case_insensitively ... ok [INFO] [stdout] test config::tests::config_clamps_count_into_supported_range ... ok [INFO] [stdout] test brave_api::tests::brave_api_build_query_params_includes_country_when_present ... ok [INFO] [stdout] test config::tests::config_normalizes_country_to_uppercase ... ok [INFO] [stdout] test brave_api::tests::brave_api_parse_search_response_surfaces_api_error_message ... ok [INFO] [stdout] test config::tests::config_rejects_invalid_country_format ... ok [INFO] [stdout] test config::tests::config_rejects_non_numeric_count ... ok [INFO] [stdout] test config::tests::config_requires_brave_api_key ... ok [INFO] [stdout] test config::tests::config_rejects_invalid_safesearch ... ok [INFO] [stdout] test brave_api::tests::brave_api_parse_search_response_ignores_results_missing_required_fields ... ok [INFO] [stdout] test feedback::tests::error_feedback_returns_single_invalid_item ... ok [INFO] [stdout] test feedback::tests::missing_search_target_feedback_returns_single_invalid_item ... ok [INFO] [stdout] test feedback::tests::no_results_item_is_invalid_and_has_expected_title ... ok [INFO] [stdout] test feedback::tests::suggestions_feedback_includes_base_query_and_autocomplete_tokens ... ok [INFO] [stdout] test feedback::tests::suggestions_feedback_returns_no_result_fallback_when_candidates_are_empty ... ok [INFO] [stdout] test feedback::tests::source_domain_prefix_falls_back_when_url_is_unparseable ... ok [INFO] [stdout] test google_suggest::tests::parse_suggestions_response_normalizes_and_deduplicates_items ... ok [INFO] [stdout] test google_suggest::tests::parse_suggestions_response_limits_results ... ok [INFO] [stdout] test google_suggest::tests::parse_suggestions_response_rejects_invalid_json ... ok [INFO] [stdout] test token::tests::token_parser_detects_empty_input ... ok [INFO] [stdout] test google_suggest::tests::parse_suggestions_response_returns_empty_for_missing_rows ... ok [INFO] [stdout] test config::tests::config_uses_defaults_when_optional_values_are_missing ... ok [INFO] [stdout] test token::tests::token_parser_routes_plain_text_to_suggest_mode ... ok [INFO] [stdout] test feedback::tests::empty_input_feedback_returns_single_invalid_item ... ok [INFO] [stdout] test token::tests::token_parser_flags_missing_result_query ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/brave_cli-d5a980f220b28180) [INFO] [stdout] test token::tests::token_parser_routes_result_prefix_to_search_mode ... ok [INFO] [stdout] test token::tests::token_parser_trims_result_query_value ... ok [INFO] [stdout] test feedback::tests::maps_search_result_to_alfred_item ... ok [INFO] [stdout] test feedback::tests::source_domain_prefix_strips_www_prefix ... ok [INFO] [stdout] test feedback::tests::truncates_long_snippet_deterministically ... ok [INFO] [stdout] test feedback::tests::empty_description_uses_fallback_subtitle ... ok [INFO] [stdout] test token::tests::token_parser_is_case_sensitive_for_prefix ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test tests::main_maps_http_api_failures_to_runtime_error_kind ... ok [INFO] [stdout] test tests::main_maps_invalid_response_failures_to_runtime_error_kind ... ok [INFO] [stdout] test tests::main_query_empty_input_returns_guidance_without_external_calls ... ok [INFO] [stdout] test tests::main_help_flag_is_supported ... ok [INFO] [stdout] test tests::main_query_search_mode_routes_res_token_to_brave_search ... ok [INFO] [stdout] test tests::main_rejects_empty_query_as_user_error ... ok [INFO] [stdout] test tests::main_search_command_outputs_feedback_json_contract ... ok [INFO] [stdout] test tests::main_query_suggest_mode_maps_to_autocomplete_rows ... ok [INFO] [stdout] test tests::main_search_service_json_mode_wraps_result_in_v1_envelope ... ok [INFO] [stdout] test tests::main_surfaces_config_errors_with_user_exit_kind ... ok [INFO] [stdout] test tests::main_service_error_envelope_has_required_error_fields ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-c791d1a6bdd52709) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test cli_contract::query_mode_empty_input_returns_alfred_feedback_json ... ok [INFO] [stdout] test cli_contract::service_json_error_envelope_has_required_keys_and_no_secret_leak ... ok [INFO] [stdout] test cli_contract::alfred_mode_keeps_stderr_error_behavior ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cambridge_cli-46b0d924e8e297a9) [INFO] [stdout] [INFO] [stdout] running 40 tests [INFO] [stdout] test config::tests::config_rejects_invalid_headless_value ... ok [INFO] [stdout] test config::tests::config_expands_home_prefix_for_node_bin ... ok [INFO] [stdout] test config::tests::config_uses_defaults_for_optional_values ... ok [INFO] [stdout] test config::tests::config_clamps_timeout_ms_into_supported_range ... ok [INFO] [stdout] test config::tests::config_rejects_invalid_dict_mode ... ok [INFO] [stdout] test config::tests::config_parses_supported_dict_modes ... ok [INFO] [stdout] test feedback::tests::feedback_define_moves_translation_text_to_subtitle_for_bilingual_rows ... ok [INFO] [stdout] test config::tests::config_requires_scraper_script_path ... ok [INFO] [stdout] test config::tests::config_rejects_missing_scraper_script_file ... ok [INFO] [stdout] test feedback::tests::feedback_define_appends_example_rows_after_definitions ... ok [INFO] [stdout] test config::tests::config_uses_default_node_bin_for_blank_value ... ok [INFO] [stdout] test feedback::tests::feedback_define_builds_fallback_entry_url_when_entry_url_is_missing ... ok [INFO] [stdout] test feedback::tests::feedback_define_outputs_header_and_valid_definition_rows ... ok [INFO] [stdout] test config::tests::config_expands_home_prefix_for_scraper_script_path ... ok [INFO] [stdout] test config::tests::config_parses_common_headless_bool_strings ... ok [INFO] [stdout] test feedback::tests::feedback_define_returns_no_definitions_item_when_entry_is_missing ... ok [INFO] [stdout] test feedback::tests::feedback_empty_input_returns_single_invalid_item ... ok [INFO] [stdout] test feedback::tests::feedback_suggest_returns_no_results_fallback_when_items_are_empty ... ok [INFO] [stdout] test feedback::tests::feedback_suggest_maps_requery_args_and_valid_items ... ok [INFO] [stdout] test scraper_bridge::tests::bridge_decode_define_response_accepts_phonetics_array ... ok [INFO] [stdout] test scraper_bridge::tests::bridge_decode_define_response_maps_entry_and_definition_rows ... ok [INFO] [stdout] test scraper_bridge::tests::bridge_build_args_uses_expected_flags ... ok [INFO] [stdout] test scraper_bridge::tests::bridge_decode_suggest_response_accepts_string_and_object_items ... ok [INFO] [stdout] test scraper_bridge::tests::bridge_decode_reads_error_payload ... ok [INFO] [stdout] test scraper_bridge::tests::bridge_decode_reports_malformed_json ... ok [INFO] [stdout] test token::tests::token_parser_detects_empty_input ... ok [INFO] [stdout] test scraper_bridge::tests::bridge_decode_uses_expected_stage_when_stage_field_is_missing ... ok [INFO] [stdout] test token::tests::token_parser_flags_missing_suggest_query ... ok [INFO] [stdout] test token::tests::token_parser_flags_missing_define_entry ... ok [INFO] [stdout] test scraper_bridge::tests::bridge_decode_suggest_response_preserves_direct_entry_payload ... ok [INFO] [stdout] test token::tests::token_parser_is_case_sensitive_for_prefix ... ok [INFO] [stdout] test token::tests::token_parser_routes_plain_text_to_smart_mode ... ok [INFO] [stdout] test token::tests::token_parser_routes_def_prefix_to_define_mode ... ok [INFO] [stdout] test token::tests::token_parser_trims_suggest_query_value ... ok [INFO] [stdout] test feedback::tests::feedback_suggest_uses_error_payload_for_fallback_subtitle ... ok [INFO] [stdout] test token::tests::token_parser_routes_suggest_prefix_to_suggest_only_mode ... ok [INFO] [stdout] test scraper_bridge::tests::bridge_decode_rejects_stage_mismatch ... ok [INFO] [stdout] test token::tests::token_parser_trims_define_entry_value ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/cambridge_cli-8022a271d782940e) [INFO] [stdout] test config::tests::config_clamps_max_results_into_supported_range ... ok [INFO] [stdout] test scraper_bridge::tests::bridge_run_scraper_reports_spawn_failure_for_missing_runtime ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 15 tests [INFO] [stdout] test tests::main_maps_bridge_timeout_to_runtime_error ... ok [INFO] [stdout] test tests::main_query_missing_suggest_target_returns_guidance_without_runtime_dependencies ... ok [INFO] [stdout] test tests::main_query_suggest_only_mode_keeps_suggestion_rows ... ok [INFO] [stdout] test tests::main_query_service_json_mode_wraps_result_in_v1_envelope ... ok [INFO] [stdout] test tests::main_query_smart_mode_falls_back_to_suggestion_rows_without_exact_match ... ok [INFO] [stdout] test tests::main_query_smart_mode_fetches_definition_for_exact_suggestion_match ... ok [INFO] [stdout] test tests::main_query_smart_mode_uses_direct_entry_payload_without_second_fetch ... ok [INFO] [stdout] test tests::main_query_define_mode_maps_definition_rows_with_url_arg ... ok [INFO] [stdout] test tests::main_suggest_error_payload_returns_non_crashing_feedback ... ok [INFO] [stdout] test tests::main_query_empty_input_returns_guidance_without_runtime_dependencies ... ok [INFO] [stdout] test tests::main_maps_bridge_spawn_failures_to_runtime_error ... ok [INFO] [stdout] test tests::main_maps_config_errors_to_user_exit_kind ... ok [INFO] [stdout] test tests::main_maps_bridge_non_zero_exit_to_runtime_error ... ok [INFO] [stdout] test tests::main_help_flag_is_supported ... ok [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-5121710684c15813) [INFO] [stdout] test tests::main_service_error_envelope_has_required_error_fields ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test cli_contract::service_json_error_envelope_has_required_keys_and_no_secret_leak ... ok [INFO] [stdout] test cli_contract::service_json_success_envelope_has_required_keys ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/epoch_cli-42820e36c0e92cfd) [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test convert::tests::epoch_to_datetime_rejects_out_of_range_epoch ... ok [INFO] [stdout] test clipboard::tests::normalize_trims_and_rejects_empty_values ... ok [INFO] [stdout] test feedback::tests::rows_to_feedback_returns_invalid_item_when_no_rows ... ok [INFO] [stdout] test feedback::tests::rows_to_feedback_maps_conversion_rows_to_items ... ok [INFO] [stdout] test convert::tests::prefix_rows_applies_clipboard_prefix ... ok [INFO] [stdout] test parser::tests::parse_empty_query_returns_empty_variant ... ok [INFO] [stdout] test parser::tests::parse_date_only_uses_local_midnight ... ok [INFO] [stdout] test parser::tests::parse_epoch_query_infers_unit_from_magnitude ... ok [INFO] [stdout] test parser::tests::parse_datetime_supports_space_and_t_separator_with_subseconds ... ok [INFO] [stdout] test parser::tests::parse_invalid_query_reports_user_error ... ok [INFO] [stdout] test parser::tests::parse_time_only_uses_today_date ... ok [INFO] [stdout] test convert::tests::epoch_to_datetime_rows_include_formatted_local_row ... ok [INFO] [stdout] test convert::tests::datetime_to_epoch_rows_include_local_and_utc_units ... ok [INFO] [stdout] test convert::tests::current_epoch_rows_return_all_units ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/epoch_cli-69db3afec2384a74) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test tests::main_service_error_envelope_has_required_error_fields ... ok [INFO] [stdout] test tests::best_effort_clipboard_rows_ignores_unparseable_content ... ok [INFO] [stdout] test tests::main_convert_service_json_mode_wraps_result_in_v1_envelope ... ok [INFO] [stdout] test tests::main_help_flag_is_supported ... ok [INFO] [stdout] test tests::main_invalid_query_returns_user_error ... ok [INFO] [stdout] test tests::main_convert_epoch_query_outputs_local_formatted_row ... ok [INFO] [stdout] test tests::main_empty_query_includes_now_rows_and_clipboard_prefix_rows ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-89269efd06af0dcb) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test cli_contract::service_json_success_envelope_has_required_keys ... ok [INFO] [stdout] test cli_contract::service_json_error_envelope_has_required_keys_and_no_secret_leak ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/google_cli-5f762670bd66a29a) [INFO] [stdout] [INFO] [stdout] running 13 tests [INFO] [stdout] test auth::callback::tests::parse_callback_accepts_full_url ... ok [INFO] [stdout] test auth::callback::tests::parse_callback_rejects_missing_code ... ok [INFO] [stdout] test gmail::client::tests::metadata_format_respects_header_selection ... ok [INFO] [stdout] test auth::config::tests::credentials_roundtrip ... ok [INFO] [stdout] test gmail::client::tests::query_matches_common_predicates ... ok [INFO] [stdout] test auth::config::tests::metadata_roundtrip_normalizes_duplicate_accounts ... ok [INFO] [stdout] test output::tests::emit_writes_stdout_and_stderr_to_provided_streams ... ok [INFO] [stdout] test output::tests::json_success_wraps_payload ... ok [INFO] [stdout] test output::tests::json_error_wraps_context_details ... ok [INFO] [stdout] test auth::store::tests::file_mode_roundtrip ... ok [INFO] [stdout] test error::tests::redact_sensitive_masks_common_tokens ... ok [INFO] [stdout] test tests::cli_routes_auth_command_into_native_invocation ... ok [INFO] [stdout] test cmd::common::tests::dynamic_command_id_appends_nested_action ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/google_cli-bbaf9d7dd6723dfa) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-5d939b9c7554f9b4) [INFO] [stdout] [INFO] [stdout] running 41 tests [INFO] [stdout] test auth_account_resolution::resolves_alias_then_default_then_single ... ok [INFO] [stdout] test auth_account_resolution::returns_ambiguous_error_without_default ... ok [INFO] [stdout] test auth_account_resolution::returns_invalid_input_for_unknown_account_or_empty_store ... ok [INFO] [stdout] test auth_cli_contract::auth_add_requires_credentials_first ... ok [INFO] [stdout] test auth_account_resolution::resolves_explicit_account ... ok [INFO] [stdout] test auth_cli_contract::auth_manage_returns_summary_only_contract ... ok [INFO] [stdout] test cli_contract::native_drive_missing_token_returns_user_error_envelope ... ok [INFO] [stdout] test cli_contract::output_mode_invalid_value_is_rejected_by_clap ... ok [INFO] [stdout] test account_resolution_shared::gmail_commands_resolve_default_or_explicit_account ... ok [INFO] [stdout] test auth_storage::credentials_set_and_list_roundtrip ... ok [INFO] [stdout] test auth_cli_contract::auth_add_reports_runtime_store_failure_when_keyring_mode_is_fail ... ok [INFO] [stdout] test auth_oauth_flow::loopback_mode_requires_test_callback_or_test_code ... ok [INFO] [stdout] test cli_contract::service_json_success_envelope_has_required_keys ... ok [INFO] [stdout] test drive_cli_contract::drive_plain_contract_emits_human_text ... ok [INFO] [stdout] test drive_download::drive_download_missing_file_maps_not_found ... ok [INFO] [stdout] test auth_cli_contract::auth_status_without_default_returns_ambiguous_error ... ok [INFO] [stdout] test drive_cli_contract::drive_download_executes_natively_and_writes_output ... ok [INFO] [stdout] test auth_storage::manual_add_persists_token_metadata_and_status ... ok [INFO] [stdout] test drive_download::drive_download_rejects_existing_path_without_overwrite ... ok [INFO] [stdout] test drive_upload::drive_upload_infers_mime_and_supports_replace_behavior ... ok [INFO] [stdout] test drive_read::drive_get_missing_file_maps_to_not_found_error ... ok [INFO] [stdout] test native_dependency_probe::native_dependency_stack_compiles ... ok [INFO] [stdout] test gmail_cli_contract::gmail_get_missing_message_maps_to_not_found_error ... ok [INFO] [stdout] test drive_upload::drive_upload_allows_explicit_mime_override ... ok [INFO] [stdout] test drive_upload::drive_upload_missing_source_maps_to_drive_input_error ... ok [INFO] [stdout] test drive_read::drive_commands_reuse_shared_account_resolution_and_error_when_ambiguous ... ok [INFO] [stdout] test native_no_gog::auth_commands_run_without_gog_binary ... ok [INFO] [stdout] test gmail_cli_contract::gmail_plain_contract_emits_human_text ... ok [INFO] [stdout] test drive_cli_contract::drive_json_contract_covers_ls_search_get_and_upload ... ok [INFO] [stdout] test account_resolution_shared::gmail_commands_reuse_shared_account_resolution_and_error_when_ambiguous ... ok [INFO] [stdout] test native_no_gog::drive_download_runs_without_gog_binary ... ok [INFO] [stdout] test native_no_gog::drive_ls_runs_without_gog_binary ... ok [INFO] [stdout] test native_no_gog::gmail_commands_run_without_gog_binary ... ok [INFO] [stdout] test gmail_send::gmail_send_builds_mime_with_attachment_and_thread_metadata ... ok [INFO] [stdout] test gmail_read::gmail_search_and_get_use_native_account_and_header_selection ... ok [INFO] [stdout] test drive_download::drive_download_supports_export_format ... ok [INFO] [stdout] test auth_oauth_flow::remote_step_two_rejects_state_mismatch_and_accepts_matching_state ... ok [INFO] [stdout] test drive_download::drive_download_writes_destination_path ... ok [INFO] [stdout] test gmail_thread::gmail_thread_get_and_modify_cover_fetch_and_label_mutation ... ok [INFO] [stdout] test drive_read::drive_json_contract_covers_ls_search_and_get ... ok [INFO] [stdout] test gmail_cli_contract::gmail_json_contract_covers_search_get_thread_and_send ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/market_cli-3c50f6798d97db5c) [INFO] [stdout] [INFO] [stdout] running 72 tests [INFO] [stdout] test cache::tests::cache_freshness_marks_record_as_fresh_within_ttl ... ok [INFO] [stdout] test cache::tests::cache_freshness_marks_record_as_stale_after_ttl ... ok [INFO] [stdout] test cache::tests::cache_key_contains_kind_base_quote ... ok [INFO] [stdout] test config::tests::config_defaults_use_temp_market_cache_dir ... ok [INFO] [stdout] test cache::tests::cache_handles_corrupt_payload_as_miss ... ok [INFO] [stdout] test config::tests::config_prefers_market_cache_dir_over_alfred_paths ... ok [INFO] [stdout] test cache::tests::cache_read_write_roundtrip ... ok [INFO] [stdout] test config::tests::config_falls_back_when_cache_ttl_override_invalid ... ok [INFO] [stdout] test config::tests::config_retry_policy_backoff_is_deterministic ... ok [INFO] [stdout] test config::tests::config_supports_crypto_cache_ttl_duration_override ... ok [INFO] [stdout] test config::tests::config_icon_cache_dir_is_versioned ... ok [INFO] [stdout] test config::tests::config_icon_cache_paths_are_deterministic ... ok [INFO] [stdout] test config::tests::config_supports_fx_cache_ttl_duration_override ... ok [INFO] [stdout] test config::tests::config_expands_home_prefix_for_market_cache_dir ... ok [INFO] [stdout] test config::tests::config_supports_seconds_and_uppercase_duration_suffixes ... ok [INFO] [stdout] test config::tests::config_uses_alfred_workflow_cache_when_market_cache_dir_missing ... ok [INFO] [stdout] test config::tests::config_uses_alfred_workflow_data_when_cache_env_missing ... ok [INFO] [stdout] test config::tests::duration_parser_supports_s_m_h_d_suffixes ... ok [INFO] [stdout] test expression::tests::expression_rounding_rule_follows_thresholds_and_half_up ... ok [INFO] [stdout] test icons::tests::icons_fall_back_to_generic_for_missing_symbol ... ok [INFO] [stdout] test icons::tests::icons_repair_empty_cache_file_before_refetching ... ok [INFO] [stdout] test model::tests::conversion_build_output_is_deterministic ... ok [INFO] [stdout] test model::tests::model_normalize_crypto_symbol_accepts_letters_and_digits ... ok [INFO] [stdout] test model::tests::model_normalize_fx_symbol_requires_three_letters ... ok [INFO] [stdout] test icons::tests::icons_download_symbol_and_persist_it ... ok [INFO] [stdout] test model::tests::numeric_parse_amount_rejects_invalid_text ... ok [INFO] [stdout] test model::tests::numeric_parse_amount_requires_positive_value ... ok [INFO] [stdout] test providers::coinbase::tests::coinbase_parse_spot_body_rejects_invalid_json ... ok [INFO] [stdout] test expression::tests::expression_numeric_mode_returns_single_result_item ... ok [INFO] [stdout] test expression::tests::asset_expression_rows_include_icon_paths_for_supported_symbols ... ok [INFO] [stdout] test expression::tests::expression_rejects_unsupported_operators ... ok [INFO] [stdout] test expression::tests::expression_requires_complete_to_clause ... ok [INFO] [stdout] test expression::tests::expression_compact_terms_do_not_treat_scientific_like_input_as_asset ... ok [INFO] [stdout] test providers::floatrates::tests::floatrates_parse_rejects_missing_rate ... ok [INFO] [stdout] test providers::floatrates::tests::floatrates_parse_rejects_invalid_timestamp ... ok [INFO] [stdout] test expression::tests::expression_mixed_numeric_and_asset_terms_fail_as_user_error ... ok [INFO] [stdout] test expression::tests::expression_numeric_mode_supports_multiply_and_divide ... ok [INFO] [stdout] test icons::tests::icons_return_none_when_symbol_and_generic_download_fail ... ok [INFO] [stdout] test expression::tests::expression_repeated_asset_deduplicates_unit_price_rows ... ok [INFO] [stdout] test providers::coinbase::tests::coinbase_parse_spot_body_surfaces_http_errors ... ok [INFO] [stdout] test providers::coinbase::tests::coinbase_parse_spot_body_extracts_amount ... ok [INFO] [stdout] test icons::tests::icons_use_cached_symbol_without_fetching ... ok [INFO] [stdout] test expression::tests::expression_tries_fx_then_crypto_for_three_letter_symbols ... ok [INFO] [stdout] test providers::frankfurter::tests::frankfurter_parse_rejects_missing_rate ... ok [INFO] [stdout] test providers::frankfurter::tests::frankfurter_parse_success_body_extracts_rate ... ok [INFO] [stdout] test providers::kraken::tests::crypto_pair_mapping_maps_eth_quote_btc ... ok [INFO] [stdout] test providers::kraken::tests::crypto_pair_mapping_rejects_invalid_symbols ... ok [INFO] [stdout] test providers::kraken::tests::kraken_parse_ticker_body_extracts_close_price ... ok [INFO] [stdout] test providers::frankfurter::tests::frankfurter_parse_surfaces_http_error_message ... ok [INFO] [stdout] test providers::kraken::tests::kraken_parse_ticker_body_returns_unsupported_pair ... ok [INFO] [stdout] test providers::tests::fx_provider_falls_back_when_primary_fails ... ok [INFO] [stdout] test providers::kraken::tests::crypto_pair_mapping_maps_btc_to_xbt ... ok [INFO] [stdout] test providers::tests::fx_provider_surfaces_both_primary_and_fallback_failures ... ok [INFO] [stdout] test providers::kraken::tests::kraken_parse_ticker_body_rejects_invalid_close ... ok [INFO] [stdout] test providers::floatrates::tests::floatrates_parse_success_body_extracts_rate_and_timestamp ... ok [INFO] [stdout] test expression::tests::expression_asset_mode_accepts_compact_terms_without_spaces ... ok [INFO] [stdout] test expression::tests::expression_numeric_mode_rejects_division_by_zero ... ok [INFO] [stdout] test providers::tests::provider_does_not_retry_non_retryable_failures ... ok [INFO] [stdout] test providers::tests::provider_error_mapping_marks_retryable_http_statuses ... ok [INFO] [stdout] test providers::tests::provider_retries_transient_failures_with_backoff ... ok [INFO] [stdout] test tests::parse_favorites_list_dedups_by_effective_base_quote_pair ... ok [INFO] [stdout] test service::tests::service_crypto_falls_back_to_kraken ... ok [INFO] [stdout] test tests::parse_favorites_list_rejects_invalid_fx_pair_format ... ok [INFO] [stdout] test tests::icon_asset_filename_rejects_invalid_symbol ... ok [INFO] [stdout] test icons::tests::write_atomic_supports_concurrent_writes_to_same_path ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/market_cli-4d938fa560c7c1da) [INFO] [stdout] test tests::parse_favorites_list_supports_symbols_and_explicit_fx_pairs ... ok [INFO] [stdout] test tests::icon_asset_filename_normalizes_symbol_to_lowercase_png ... ok [INFO] [stdout] test service::tests::service_fails_without_cache_when_all_providers_fail ... ok [INFO] [stdout] test service::tests::service_stale_payload_preserves_provider_metadata ... ok [INFO] [stdout] test service::tests::service_uses_stale_cache_on_provider_failure ... ok [INFO] [stdout] test service::tests::service_short_circuits_on_fresh_cache ... ok [INFO] [stdout] test service::tests::service_writes_cache_after_live_success ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 72 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 21 tests [INFO] [stdout] test tests::main_help_flag_is_supported ... ok [INFO] [stdout] test tests::main_maps_invalid_symbols_to_user_error ... ok [INFO] [stdout] test tests::main_maps_runtime_provider_failure ... ok [INFO] [stdout] test tests::main_maps_expr_syntax_error_to_user_error ... ok [INFO] [stdout] test tests::main_outputs_expr_alfred_json_contract ... ok [INFO] [stdout] test tests::main_outputs_expr_json_envelope_when_requested ... ok [INFO] [stdout] test tests::main_rejects_unknown_output_value ... ok [INFO] [stdout] test tests::main_outputs_favorites_human_mode_without_quote_resolution ... ok [INFO] [stdout] test tests::main_outputs_favorites_human_mode_with_explicit_fx_pairs ... ok [INFO] [stdout] test tests::main_outputs_crypto_json_contract ... ok [INFO] [stdout] test tests::main_outputs_fx_json_contract ... ok [INFO] [stdout] test tests::main_outputs_fx_human_mode_by_default ... ok [INFO] [stdout] test tests::main_redacts_sensitive_error_fragments ... ok [INFO] [stdout] test tests::main_favorite_fx_pair_failures_fall_back_to_pair_hint_rows ... ok [INFO] [stdout] test tests::main_favorites_quote_failures_fall_back_to_symbol_hint_rows ... ok [INFO] [stdout] test tests::main_outputs_crypto_alfred_json_with_symbol_icon ... ok [INFO] [stdout] test tests::favorites_rows_include_explicit_fx_pairs ... ok [INFO] [stdout] test tests::main_outputs_fx_alfred_json_mode_when_requested ... ok [INFO] [stdout] test tests::favorites_rows_include_icon_paths_for_supported_symbols ... ok [INFO] [stdout] test tests::main_outputs_favorites_json_envelope_when_requested ... ok [INFO] [stdout] test tests::main_outputs_fx_alfred_json_with_generic_fallback_icon ... ok [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-54a51d45bad006d8) [INFO] [stdout] [INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 25 tests [INFO] [stdout] test cli_contract::cli_contract_cache_status_serializes_in_snake_case ... ok [INFO] [stdout] test cli_contract::cli_contract_amount_validation_rejects_zero ... ok [INFO] [stdout] test cli_contract::cli_contract_favorites_dedup_preserves_first_occurrence_in_human_mode ... ok [INFO] [stdout] test cli_contract::cli_contract_output_contains_required_fields_for_fx ... ok [INFO] [stdout] test cli_contract::cli_contract_favorites_human_output_preserves_mixed_separator_order ... ok [INFO] [stdout] test cli_contract::cli_contract_crypto_cache_ttl_override_applies_to_cached_crypto_json_output ... ok [INFO] [stdout] test cli_contract::cli_contract_favorites_empty_list_falls_back_to_default_set_in_human_mode ... ok [INFO] [stdout] test cli_contract::cli_contract_favorites_human_output_supports_explicit_fx_pairs ... ok [INFO] [stdout] test cli_contract::cli_contract_favorites_duplicate_default_fiat_keeps_stable_fallback_order_in_human_mode ... ok [INFO] [stdout] test cli_contract::cli_contract_favorites_backslash_n_delimiter_only_list_falls_back_to_default_set_in_human_mode ... ok [INFO] [stdout] test cli_contract::cli_contract_fx_cache_ttl_override_applies_to_cached_fx_json_output ... ok [INFO] [stdout] test cli_contract::cli_contract_favorites_delimiter_only_list_falls_back_to_default_set_in_human_mode ... ok [INFO] [stdout] test cli_contract::config_icon_cache_dir_is_versioned ... ok [INFO] [stdout] test cli_contract::cli_contract_favorites_backslash_n_and_duplicates_preserve_first_occurrence_in_human_mode ... ok [INFO] [stdout] test cli_contract::cli_contract_favorites_alfred_rows_include_explicit_fx_pairs ... ok [INFO] [stdout] test cli_contract::cli_contract_favorites_alfred_rows_include_prompt_and_quotes ... ok [INFO] [stdout] test cli_contract::service_json_error_envelope_for_invalid_favorites_token_has_required_keys ... ok [INFO] [stdout] test cli_contract::service_json_error_envelope_for_invalid_favorites_default_fiat_has_required_keys ... ok [INFO] [stdout] test cli_contract::service_json_error_envelope_has_required_keys ... ok [INFO] [stdout] test cli_contract::cli_contract_favorites_dedup_uses_effective_base_quote_pair ... ok [INFO] [stdout] test cli_contract::cli_contract_favorites_json_envelope_matches_alfred_output ... ok [INFO] [stdout] test cli_contract::service_json_error_envelope_redacts_secret_like_input ... ok [INFO] [stdout] test cli_contract::cli_contract_fx_alfred_row_falls_back_to_generic_icon_when_symbol_icon_missing ... ok [INFO] [stdout] test cli_contract::favorites_rows_include_icon_paths_for_supported_symbols ... ok [INFO] [stdout] test cli_contract::asset_expression_rows_include_icon_paths_for_supported_symbols ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.44s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/memo_workflow_cli-0238b0588cdd0f8b) [INFO] [stdout] [INFO] [stdout] running 28 tests [INFO] [stdout] test tests::add_token_roundtrip ... ok [INFO] [stdout] test tests::parse_bool_supports_expected_values ... ok [INFO] [stdout] test tests::expand_home_path_supports_tilde_prefix ... ok [INFO] [stdout] test tests::script_filter_returns_add_action_for_non_empty_query ... ok [INFO] [stdout] test tests::script_filter_enforces_max_input_bytes ... ok [INFO] [stdout] test tests::copy_json_token_roundtrip ... ok [INFO] [stdout] test tests::copy_token_roundtrip ... ok [INFO] [stdout] test tests::script_filter_returns_db_init_on_empty_query ... ok [INFO] [stdout] test tests::script_filter_rejects_delete_with_invalid_item_id ... ok [INFO] [stdout] test tests::delete_token_roundtrip ... ok [INFO] [stdout] test tests::script_filter_search_intent_requires_query_text ... ok [INFO] [stdout] test tests::update_token_rejects_missing_text ... ok [INFO] [stdout] test tests::update_token_roundtrip ... ok [INFO] [stdout] test tests::script_filter_returns_update_action_for_update_intent ... ok [INFO] [stdout] test tests::script_filter_guides_update_without_text ... ok [INFO] [stdout] test tests::script_filter_existing_db_shows_db_path_info_without_db_init ... ok [INFO] [stdout] test tests::execute_search_rejects_invalid_limit_or_window ... ok [INFO] [stdout] test tests::update_row_overflow_moves_remaining_text_to_subtitle ... ok [INFO] [stdout] test tests::script_filter_search_intent_returns_manage_rows ... ok [INFO] [stdout] test tests::script_filter_item_intent_returns_copy_update_delete_choices ... ok [INFO] [stdout] test tests::script_filter_returns_copy_action_for_copy_intent ... ok [INFO] [stdout] test tests::script_filter_search_intent_rejects_invalid_match_mode ... ok [INFO] [stdout] test tests::delete_row_overflow_moves_remaining_text_to_subtitle ... ok [INFO] [stdout] test tests::script_filter_search_intent_supports_explicit_match_modes ... ok [INFO] [stdout] test tests::script_filter_returns_delete_action_for_delete_intent ... ok [INFO] [stdout] test tests::script_filter_search_intent_uses_configured_default_match_mode ... ok [INFO] [stdout] test tests::copy_row_overflow_moves_remaining_text_to_subtitle ... ok [INFO] [stdout] test tests::script_filter_search_intent_multiple_hits_keep_search_rows ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/memo_workflow_cli-90a11a9e5342bb47) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-80586a5a90327b13) [INFO] [stdout] [INFO] [stdout] running 19 tests [INFO] [stdout] test cli_contract::add_rejects_empty_text ... ok [INFO] [stdout] test cli_contract::script_filter_returns_items_array ... ok [INFO] [stdout] test cli_contract::script_filter_empty_query_includes_db_init_row ... ok [INFO] [stdout] test cli_contract::update_delete_invalid_item_id_returns_usage_error ... ok [INFO] [stdout] test cli_contract::db_init_creates_database ... ok [INFO] [stdout] initialized /tmp/.tmpo6zv8I/memo.db [INFO] [stdout] test cli_contract::script_filter_empty_query_with_existing_db_shows_db_path_row_without_db_init ... ok [INFO] [stdout] test cli_contract::script_filter_exposes_update_delete_intents ... ok [INFO] [stdout] test cli_contract::script_filter_search_intent_keeps_search_row_for_single_hit ... ok [INFO] [stdout] test cli_contract::script_filter_recent_rows_offer_manage_autocomplete ... ok [INFO] [stdout] test cli_contract::add_writes_one_row ... ok [INFO] [stdout] test cli_contract::script_filter_search_intent_uses_env_default_match_mode ... ok [INFO] [stdout] test cli_contract::search_command_supports_prefix_and_contains_match_modes ... ok [INFO] [stdout] test cli_contract::search_command_returns_matching_rows ... ok [INFO] [stdout] test cli_contract::delete_removes_existing_item ... ok [INFO] [stdout] test cli_contract::update_mutates_existing_item ... ok [INFO] [stdout] test cli_contract::script_filter_item_intent_shows_copy_update_delete_menu_and_update_guidance ... ok [INFO] [stdout] test cli_contract::action_token_crud_roundtrip_with_isolated_db ... ok [INFO] [stdout] test cli_contract::script_filter_search_intent_keeps_search_rows_for_multi_hit ... ok [INFO] [stdout] test cli_contract::list_returns_latest_first ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/quote_cli-0f2e005f742891ef) [INFO] [stdout] [INFO] [stdout] running 30 tests [INFO] [stdout] test config::tests::config_clamps_numeric_values_into_ranges ... ok [INFO] [stdout] test config::tests::config_defaults_apply_when_values_missing ... ok [INFO] [stdout] test config::tests::config_expands_home_prefix_for_quote_data_dir ... ok [INFO] [stdout] test config::tests::config_prefers_alfred_workflow_data_path ... ok [INFO] [stdout] test config::tests::config_prefers_explicit_quote_data_dir_over_alfred_data_path ... ok [INFO] [stdout] test config::tests::config_rejects_non_numeric_count_values ... ok [INFO] [stdout] test config::tests::duration_parser_accepts_s_m_h_suffixes ... ok [INFO] [stdout] test config::tests::duration_parser_rejects_invalid_interval_formats ... ok [INFO] [stdout] test feedback::tests::feedback_filters_by_query_case_insensitive ... ok [INFO] [stdout] test feedback::tests::feedback_respects_display_count ... ok [INFO] [stdout] test feedback::tests::feedback_returns_empty_cache_item_when_no_quotes ... ok [INFO] [stdout] test feedback::tests::feedback_returns_no_match_item_when_query_has_no_hits ... ok [INFO] [stdout] test feedback::tests::feedback_returns_refresh_unavailable_item_when_cache_empty_and_refresh_failed ... ok [INFO] [stdout] test feedback::tests::feedback_strips_curly_wrapping_quotes ... ok [INFO] [stdout] test feedback::tests::feedback_wraps_long_quote_into_second_line_and_preserves_author ... ok [INFO] [stdout] test zenquotes::tests::zenquotes_parse_returns_none_for_missing_fields ... ok [INFO] [stdout] test feedback::tests::feedback_uses_default_subtitle_when_author_missing ... ok [INFO] [stdout] test refresh::tests::refresh_keeps_cache_when_fetch_fails ... ok [INFO] [stdout] test store::tests::store_trim_retains_only_max_entries ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/quote_cli-b2986396d352089e) [INFO] [stdout] test refresh::tests::refresh_skips_fetch_when_interval_not_elapsed ... ok [INFO] [stdout] test store::tests::store_load_quotes_returns_empty_for_missing_file ... ok [INFO] [stdout] test store::tests::store_merge_dedupe_preserves_first_seen_order ... ok [INFO] [stdout] test zenquotes::tests::zenquotes_parse_rejects_non_success_http_status ... ok [INFO] [stdout] test store::tests::store_timestamp_tolerates_garbage_content ... ok [INFO] [stdout] test refresh::tests::refresh_trims_merged_quotes_to_max_entries ... ok [INFO] [stdout] test store::tests::store_timestamp_roundtrip ... ok [INFO] [stdout] test refresh::tests::refresh_fetches_and_updates_when_stale ... ok [INFO] [stdout] test zenquotes::tests::zenquotes_parse_extracts_quote_and_author_line ... ok [INFO] [stdout] test store::tests::store_save_and_load_roundtrip_preserves_non_empty_lines ... ok [INFO] [stdout] test zenquotes::tests::zenquotes_parse_rejects_invalid_json ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test tests::main_service_error_envelope_has_required_error_fields ... ok [INFO] [stdout] test tests::main_maps_config_failures_to_user_error ... ok [INFO] [stdout] test tests::main_maps_refresh_storage_failures_to_runtime_error ... ok [INFO] [stdout] test tests::main_feed_command_outputs_feedback_json_contract ... ok [INFO] [stdout] test tests::main_help_flag_is_supported ... ok [INFO] [stdout] test tests::main_feed_service_json_mode_wraps_result_in_v1_envelope ... ok [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-b52f4786aaf698cc) [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test cli_contract::service_json_error_envelope_has_required_keys_and_no_secret_leak ... ok [INFO] [stdout] test cli_contract::service_json_success_envelope_has_required_keys ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/randomer_cli-ff4d244bdc54ceca) [INFO] [stdout] [INFO] [stdout] running 19 tests [INFO] [stdout] test tests::format_parse_is_case_insensitive_and_trimmed ... ok [INFO] [stdout] test tests::format_otp_is_six_digits_zero_padded ... ok [INFO] [stdout] test tests::generate_feedback_rejects_unknown_format ... ok [INFO] [stdout] test tests::query_filter_is_case_insensitive_contains ... ok [INFO] [stdout] test tests::generate_feedback_emits_requested_count_and_fields ... ok [INFO] [stdout] test tests::format_hex_has_prefix_fixed_width_and_uppercase ... ok [INFO] [stdout] test tests::format_percent_has_suffix_and_bounds ... ok [INFO] [stdout] test tests::format_decimal_has_fixed_two_decimals ... ok [INFO] [stdout] test tests::format_unit_has_legacy_shape_and_checksum ... ok [INFO] [stdout] test tests::format_email_shape_matches_legacy_contract ... ok [INFO] [stdout] test tests::format_currency_has_symbol_grouping_and_scale ... ok [INFO] [stdout] test tests::format_int_is_digits_only ... ok [INFO] [stdout] test tests::generate_feedback_rejects_zero_count ... ok [INFO] [stdout] test tests::supported_formats_match_contract_order ... ok [INFO] [stdout] test tests::format_phone_is_taiwan_mobile_shape ... ok [INFO] [stdout] test tests::list_formats_feedback_contains_menu_contract_fields ... ok [INFO] [stdout] test tests::format_imei_has_15_digits_and_valid_checksum ... ok [INFO] [stdout] test tests::format_uuid_is_rfc4122_v4 ... ok [INFO] [stdout] test tests::list_types_feedback_contains_type_selector_contract_fields ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/randomer_cli-168987509c519660) [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test tests::service_error_envelope_has_required_error_fields ... ok [INFO] [stdout] test tests::help_flag_is_supported ... ok [INFO] [stdout] test tests::list_formats_applies_case_insensitive_contains_filter ... ok [INFO] [stdout] test tests::generate_outputs_requested_count_for_known_format ... ok [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-a7e16506d27e8c77) [INFO] [stdout] test tests::list_types_outputs_selector_items_with_format_args ... ok [INFO] [stdout] test tests::list_formats_outputs_alfred_json_items ... ok [INFO] [stdout] test tests::invalid_format_returns_user_error_kind_and_exit_code_2 ... ok [INFO] [stdout] test tests::list_formats_service_json_mode_wraps_result_in_v1_envelope ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test cli_contract::service_json_success_envelope_has_required_keys ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/spotify_cli-367e10cbcf0410e2) [INFO] [stdout] test cli_contract::service_json_error_envelope_has_required_keys_and_no_secret_leak ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 24 tests [INFO] [stdout] test config::tests::config_clamps_max_results_into_supported_range ... ok [INFO] [stdout] test config::tests::config_requires_spotify_client_id ... ok [INFO] [stdout] test config::tests::config_requires_spotify_client_secret ... ok [INFO] [stdout] test config::tests::config_rejects_invalid_market_format ... ok [INFO] [stdout] test config::tests::config_normalizes_market_to_uppercase ... ok [INFO] [stdout] test config::tests::config_rejects_non_numeric_max_results ... ok [INFO] [stdout] test config::tests::config_uses_default_max_results_when_missing ... ok [INFO] [stdout] test spotify_api::tests::spotify_api_build_query_params_follows_contract ... ok [INFO] [stdout] test feedback::tests::error_feedback_returns_single_invalid_item ... ok [INFO] [stdout] test feedback::tests::feedback_maps_tracks_to_alfred_items ... ok [INFO] [stdout] test feedback::tests::feedback_no_results_is_invalid_item ... ok [INFO] [stdout] test feedback::tests::feedback_uses_unknown_metadata_fallbacks ... ok [INFO] [stdout] test feedback::tests::feedback_subtitle_truncation_is_deterministic_and_single_line ... ok [INFO] [stdout] test spotify_api::tests::spotify_api_parse_search_response_extracts_track_fields ... ok [INFO] [stdout] test spotify_auth::tests::spotify_auth_parse_token_response_extracts_access_token_fields ... ok [INFO] [stdout] test spotify_auth::tests::spotify_auth_parse_token_response_surfaces_error_description ... ok [INFO] [stdout] test spotify_api::tests::spotify_api_parse_search_response_rejects_invalid_success_json ... ok [INFO] [stdout] test spotify_api::tests::spotify_api_parse_search_response_surfaces_api_error_message ... ok [INFO] [stdout] test spotify_api::tests::spotify_api_parse_search_response_ignores_tracks_missing_required_fields ... ok [INFO] [stdout] test spotify_api::tests::spotify_api_build_query_params_includes_market_when_present ... ok [INFO] [stdout] test spotify_auth::tests::spotify_auth_parse_token_response_uses_http_fallback_message ... ok [INFO] [stdout] test spotify_auth::tests::spotify_auth_parse_token_response_rejects_invalid_success_json ... ok [INFO] [stdout] test spotify_auth::tests::spotify_auth_parse_token_response_supports_nested_error_message ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/spotify_cli-36de719834278b7d) [INFO] [stdout] test spotify_api::tests::spotify_api_parse_search_response_supports_empty_track_list ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test tests::main_service_error_envelope_has_required_error_fields ... ok [INFO] [stdout] test tests::main_maps_auth_invalid_client_to_user_error_kind ... ok [INFO] [stdout] test tests::main_maps_auth_rate_limit_to_runtime_error_kind ... ok [INFO] [stdout] test tests::main_maps_api_unavailable_to_runtime_error_kind ... ok [INFO] [stdout] test tests::main_rejects_empty_query_as_user_error ... ok [INFO] [stdout] test tests::main_help_flag_is_supported ... ok [INFO] [stdout] test tests::main_surfaces_config_errors_with_user_exit_kind ... ok [INFO] [stdout] test tests::main_search_command_outputs_feedback_json_contract ... ok [INFO] [stdout] test tests::main_search_service_json_mode_wraps_result_in_v1_envelope ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-b66291144d7d584e) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test cli_contract::service_json_error_envelope_has_required_keys_and_no_secret_leak ... ok [INFO] [stdout] test cli_contract::alfred_mode_keeps_stderr_error_behavior ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/steam_cli-6836cf086953c8c8) [INFO] [stdout] [INFO] [stdout] running 38 tests [INFO] [stdout] test config::tests::config_rejects_invalid_search_api ... ok [INFO] [stdout] test config::tests::config_allows_empty_language_to_skip_l_param ... ok [INFO] [stdout] test config::tests::config_defaults_search_api_to_new_endpoint ... ok [INFO] [stdout] test config::tests::config_rejects_delimiters_only_region_options_input ... ok [INFO] [stdout] test config::tests::config_rejects_invalid_region_format ... ok [INFO] [stdout] test config::tests::config_rejects_invalid_language_format ... ok [INFO] [stdout] test config::tests::config_parses_region_options_with_order_and_dedup ... ok [INFO] [stdout] test config::tests::config_parses_show_region_options_bool_values ... ok [INFO] [stdout] test config::tests::config_clamps_max_results_into_supported_range ... ok [INFO] [stdout] test config::tests::config_normalizes_language_to_lowercase ... ok [INFO] [stdout] test config::tests::config_normalizes_region_to_lowercase ... ok [INFO] [stdout] test config::tests::config_parses_search_api_aliases ... ok [INFO] [stdout] test config::tests::config_rejects_invalid_region_options_token ... ok [INFO] [stdout] test config::tests::config_rejects_invalid_show_region_options_value ... ok [INFO] [stdout] test config::tests::config_rejects_non_numeric_max_results ... ok [INFO] [stdout] test config::tests::config_uses_defaults_when_optional_values_are_missing ... ok [INFO] [stdout] test feedback::tests::feedback_uses_fallback_labels_for_missing_price_and_type ... ok [INFO] [stdout] test feedback::tests::feedback_no_results_item_is_invalid_and_has_expected_title ... ok [INFO] [stdout] test feedback::tests::error_feedback_returns_single_invalid_item ... ok [INFO] [stdout] test feedback::tests::feedback_switch_rows_follow_configured_order ... ok [INFO] [stdout] test feedback::tests::feedback_current_region_subtitle_omits_language_when_not_configured ... ok [INFO] [stdout] test feedback::tests::url_builds_canonical_store_url ... ok [INFO] [stdout] test steam_store_api::tests::steam_store_api_build_query_params_includes_query_region_and_language_when_configured ... ok [INFO] [stdout] test steam_store_api::tests::steam_store_api_build_query_params_uses_empty_language_when_not_configured ... ok [INFO] [stdout] test steam_store_api::tests::steam_store_api_build_store_search_query_params_omits_language_when_empty ... ok [INFO] [stdout] test feedback::tests::feedback_subtitle_truncation_is_deterministic_and_single_line ... ok [INFO] [stdout] test steam_store_api::tests::steam_store_api_parse_search_response_extracts_expected_fields ... ok [INFO] [stdout] test feedback::tests::feedback_hides_region_rows_when_switch_is_disabled ... ok [INFO] [stdout] test feedback::tests::feedback_maps_result_to_alfred_item_with_canonical_url ... ok [INFO] [stdout] test feedback::tests::feedback_switch_rows_use_requery_arg_contract ... ok [INFO] [stdout] test steam_store_api::tests::steam_store_api_parse_search_response_ignores_partial_items ... ok [INFO] [stdout] test feedback::tests::url_omits_language_parameter_when_not_configured ... ok [INFO] [stdout] test steam_store_api::tests::steam_store_api_maps_search_suggestions_type_codes ... ok [INFO] [stdout] test steam_store_api::tests::steam_store_api_maps_storesearch_type_values ... ok [INFO] [stdout] test steam_store_api::tests::steam_store_api_parse_search_response_rejects_malformed_success_payload ... ok [INFO] [stdout] test steam_store_api::tests::steam_store_api_parse_search_response_supports_empty_items ... ok [INFO] [stdout] test steam_store_api::tests::steam_store_api_parse_store_search_response_extracts_expected_fields ... ok [INFO] [stdout] test steam_store_api::tests::steam_store_api_parse_search_response_surfaces_api_error_message ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/steam_cli-4bade2c1b1f3dc6b) [INFO] [stdout] [INFO] [stdout] test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test tests::serialize_service_error_emits_required_fields ... ok [INFO] [stdout] test tests::main_search_rejects_empty_query_before_api_call ... ok [INFO] [stdout] test tests::main_search_service_json_mode_wraps_result_in_v1_envelope ... ok [INFO] [stdout] test tests::main_search_command_outputs_feedback_json_contract ... ok [INFO] [stdout] test tests::main_search_command_omits_language_param_when_not_configured ... ok [INFO] [stdout] test tests::main_search_surfaces_config_errors_as_user_errors ... ok [INFO] [stdout] test tests::main_search_surfaces_api_http_errors_as_runtime_errors ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-19dbfcb237dc2f0e) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test cli_contract::cli_contract_empty_query_returns_user_error ... ok [INFO] [stdout] test cli_contract::cli_contract_invalid_config_returns_user_error ... ok [INFO] [stdout] test cli_contract::cli_contract_api_failure_returns_runtime_error_message ... ok [INFO] [stdout] test cli_contract::cli_contract_hides_region_switch_rows_by_default ... ok [INFO] [stdout] test cli_contract::cli_contract_success_returns_alfred_json_items ... ok [INFO] [stdout] test cli_contract::cli_contract_legacy_mode_uses_store_search_api ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/timezone_cli-42d774333237bb7e) [INFO] [stdout] [INFO] [stdout] running 13 tests [INFO] [stdout] test convert::tests::format_utc_offset_formats_positive_and_negative_offsets ... ok [INFO] [stdout] test parser::tests::parse_timezone_list_allows_empty_input_as_no_entries ... ok [INFO] [stdout] test parser::tests::parse_timezone_list_ignores_empty_tokens ... ok [INFO] [stdout] test local_tz::tests::local_tz_terminal_utc_when_all_probes_fail ... ok [INFO] [stdout] test local_tz::tests::local_tz_fallback_chain_order ... ok [INFO] [stdout] test convert::tests::now_rows_contains_offset_in_subtitle_and_copy_arg ... ok [INFO] [stdout] test convert::tests::now_rows_preserves_input_order ... ok [INFO] [stdout] test feedback::tests::rows_to_feedback_maps_rows_to_items ... ok [INFO] [stdout] test feedback::tests::rows_to_feedback_returns_invalid_item_for_empty_rows ... ok [INFO] [stdout] test local_tz::tests::normalize_timezone_candidate_handles_systemsetup_output_and_zoneinfo_path ... ok [INFO] [stdout] test parser::tests::parse_timezone_list_rejects_invalid_timezone ... ok [INFO] [stdout] test parser::tests::parse_timezone_list_preserves_comma_and_newline_order ... ok [INFO] [stdout] test parser::tests::parse_timezone_list_rejects_delimiters_only_input ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/timezone_cli-e7ae4ebf8b3c1c07) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test tests::service_error_envelope_has_required_error_fields ... ok [INFO] [stdout] test tests::invalid_timezone_returns_user_error ... ok [INFO] [stdout] test tests::help_flag_is_supported ... ok [INFO] [stdout] test tests::empty_query_and_config_uses_detected_local_timezone ... ok [INFO] [stdout] test tests::service_json_mode_wraps_result_in_v1_envelope ... ok [INFO] [stdout] test tests::query_overrides_config_list ... ok [INFO] [stdout] test tests::order_preserved_for_config_list ... ok [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-3d31fbaebe75c0b5) [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test cli_contract::service_json_success_envelope_has_required_keys ... ok [INFO] [stdout] test cli_contract::service_json_error_envelope_has_required_keys_and_no_secret_leak ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/weather_cli-f6d037edb398de6c) [INFO] [stdout] [INFO] [stdout] running 68 tests [INFO] [stdout] test cache::tests::cache_freshness_marks_record_as_fresh_within_ttl ... ok [INFO] [stdout] test cache::tests::cache_freshness_marks_record_as_stale_after_ttl ... ok [INFO] [stdout] test cache::tests::cache_key_contains_period_and_location_key ... ok [INFO] [stdout] test config::tests::config_defaults_use_temp_weather_cache_dir ... ok [INFO] [stdout] test config::tests::config_expands_home_prefix_for_weather_cache_dir ... ok [INFO] [stdout] test batch_service::tests::batch_service_uses_single_open_meteo_batch_call_for_multiple_cities ... ok [INFO] [stdout] test cache::tests::cache_handles_corrupt_payload_as_miss ... ok [INFO] [stdout] test config::tests::config_falls_back_when_cache_ttl_override_invalid ... ok [INFO] [stdout] test batch_service::tests::batch_service_falls_back_to_met_no_or_stale_cache_per_city ... ok [INFO] [stdout] test cache::tests::cache_read_write_roundtrip ... ok [INFO] [stdout] test config::tests::config_prefers_weather_cache_dir_over_alfred_paths ... ok [INFO] [stdout] test config::tests::config_supports_cache_ttl_override ... ok [INFO] [stdout] test error::tests::error_runtime_with_trace_formats_message ... ok [INFO] [stdout] test geocoding::tests::geocoding_cache_key_includes_slug_and_coords ... ok [INFO] [stdout] test geocoding::tests::geocoding_city_query_cache_key_uses_city_prefix ... ok [INFO] [stdout] test geocoding::tests::geocoding_coordinate_label_is_deterministic ... ok [INFO] [stdout] test geocoding::tests::geocoding_location_from_coordinates_uses_normalized_label ... ok [INFO] [stdout] test geocoding::tests::geocoding_slugify_for_cache_falls_back_for_non_ascii ... ok [INFO] [stdout] test geocoding::tests::geocoding_slugify_cleans_non_ascii_boundaries ... ok [INFO] [stdout] test model::tests::model_normalize_cities_rejects_empty_entries ... ok [INFO] [stdout] test model::tests::model_rejects_invalid_latitude ... ok [INFO] [stdout] test geocoding::tests::geocoding_cache_roundtrip_for_city_location ... ok [INFO] [stdout] test model::tests::model_normalize_city_trims_input ... ok [INFO] [stdout] test error::tests::error_exit_code_mapping_is_stable ... ok [INFO] [stdout] test model::tests::model_normalize_cities_preserves_order_and_dedupes_case_insensitively ... ok [INFO] [stdout] test config::tests::config_retry_policy_backoff_is_deterministic ... ok [INFO] [stdout] test hourly_service::tests::hourly_service_filters_out_hours_older_than_current_hour ... ok [INFO] [stdout] test model::tests::model_rejects_invalid_longitude ... ok [INFO] [stdout] test model::tests::model_rejects_conflicting_location_input ... ok [INFO] [stdout] test model::tests::model_request_accepts_coordinate_input ... ok [INFO] [stdout] test model::tests::model_rejects_missing_location_input ... ok [INFO] [stdout] test hourly_service::tests::hourly_service_returns_live_output ... ok [INFO] [stdout] test providers::met_no::tests::met_no_aggregates_timeseries_into_daily_summary ... ok [INFO] [stdout] test hourly_service::tests::hourly_service_uses_cached_geocode_when_hourly_cache_missing ... ok [INFO] [stdout] test hourly_service::tests::hourly_service_uses_fresh_cache_without_provider_calls ... ok [INFO] [stdout] test model::tests::model_rejects_partial_coordinates ... ok [INFO] [stdout] test model::tests::model_request_accepts_city_input ... ok [INFO] [stdout] test providers::met_no::tests::met_no_maps_symbols_to_open_meteo_codes ... ok [INFO] [stdout] test service::tests::location_resolution_uses_cached_geocode_when_forecast_cache_missing ... ok [INFO] [stdout] test providers::open_meteo::tests::open_meteo_extract_error_message_prefers_reason ... ok [INFO] [stdout] test providers::met_no::tests::met_no_returns_invalid_response_when_insufficient_days ... ok [INFO] [stdout] test providers::open_meteo::tests::open_meteo_forecast_rejects_mismatched_daily_lengths ... ok [INFO] [stdout] test providers::open_meteo::tests::open_meteo_forecast_builds_days_and_clamps_precip ... ok [INFO] [stdout] test service::tests::location_resolution_uses_coordinate_bypass_for_lat_lon ... ok [INFO] [stdout] test providers::open_meteo::tests::open_meteo_geocode_parses_first_result ... ok [INFO] [stdout] test weather_code::tests::summary_mapping_handles_unknown_code ... ok [INFO] [stdout] test service::tests::location_resolution_uses_geocoding_for_city ... ok [INFO] [stdout] test providers::open_meteo::tests::open_meteo_geocode_returns_not_found_when_empty ... ok [INFO] [stdout] test providers::open_meteo::tests::open_meteo_hourly_rejects_mismatched_lengths ... ok [INFO] [stdout] test providers::tests::provider_error_mapping_marks_retryable_http_statuses ... ok [INFO] [stdout] test weather_code::tests::weather_code_maps_rain_family ... ok [INFO] [stdout] test weather_icon::tests::clear_family_uses_explicit_day_keys ... ok [INFO] [stdout] test providers::open_meteo::tests::open_meteo_hourly_builds_hours_and_clamps_precip ... ok [INFO] [stdout] test weather_icon::tests::cloudy_family_uses_shared_keys ... ok [INFO] [stdout] test service::tests::service_short_circuits_on_fresh_cache ... ok [INFO] [stdout] test weather_icon::tests::hourly_icons_switch_to_night_variants_after_dark ... ok [INFO] [stdout] test service::tests::service_uses_fallback_when_primary_fails ... ok [INFO] [stdout] test weather_icon::tests::icon_key_reports_night_variant_status ... ok [INFO] [stdout] test weather_code::tests::weather_code_maps_english_labels ... ok [INFO] [stdout] test weather_code::tests::weather_code_maps_clear_sky ... ok [INFO] [stdout] test providers::tests::timeout_retry_bounds_are_applied ... ok [INFO] [stdout] test service::tests::service_returns_stale_cache_on_provider_failure ... ok [INFO] [stdout] test service::tests::service_reports_provider_trace_on_total_failure ... ok [INFO] [stdout] test weather_icon::tests::night_variants_cover_non_clear_weather_codes ... ok [INFO] [stdout] test weather_icon::tests::invalid_hour_inputs_fall_back_to_day_variant ... ok [INFO] [stdout] test providers::met_no::tests::met_no_fetch_forecast_extracts_http_error_message ... ok [INFO] [stdout] test weather_icon::tests::current_conditions_use_timezone_local_hour ... ok [INFO] [stdout] test providers::met_no::tests::met_no_fetch_forecast_retries_and_sets_user_agent ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 68 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/weather_cli-4b0b7e507e78a8d3) [INFO] [stdout] [INFO] [stdout] running 17 tests [INFO] [stdout] test tests::exit_code_mapping_user_and_runtime_are_stable ... ok [INFO] [stdout] test tests::main_help_flag_is_supported ... ok [INFO] [stdout] test tests::main_accepts_negative_longitude_values ... ok [INFO] [stdout] test tests::main_maps_invalid_input_to_user_error ... ok [INFO] [stdout] test tests::main_redacts_sensitive_error_fragments ... ok [INFO] [stdout] test tests::main_maps_runtime_provider_failure ... ok [INFO] [stdout] test tests::main_outputs_hourly_alfred_json_mode_when_requested ... ok [INFO] [stdout] test tests::main_outputs_alfred_json_mode_when_requested ... ok [INFO] [stdout] test tests::main_rejects_unknown_output_value ... ok [INFO] [stdout] test tests::main_outputs_alfred_json_mode_in_zh_when_requested ... ok [INFO] [stdout] test tests::main_outputs_batch_json_contract_for_repeated_city_flags ... ok [INFO] [stdout] test tests::main_outputs_text_mode_when_json_flag_not_set ... ok [INFO] [stdout] test tests::main_outputs_today_json_contract ... ok [INFO] [stdout] test tests::main_outputs_week_json_contract ... ok [INFO] [stdout] test tests::main_outputs_batch_alfred_json_for_repeated_city_flags ... ok [INFO] [stdout] test tests::main_outputs_text_mode_in_zh_when_requested ... ok [INFO] [stdout] test tests::main_outputs_hourly_json_contract ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-b8b6685e7672624e) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test cli_contract::cli_contract_batch_output_contains_entries_and_city_key ... ok [INFO] [stdout] test cli_contract::cli_contract_output_contains_required_fields_for_today ... ok [INFO] [stdout] test cli_contract::cli_contract_freshness_status_serializes_in_snake_case ... ok [INFO] [stdout] test cli_contract::unknown_output_value_is_rejected_by_clap ... ok [INFO] [stdout] test cli_contract::service_json_error_envelope_has_required_keys ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/wiki_cli-b2779a85cc78d28e) [INFO] [stdout] [INFO] [stdout] running 22 tests [INFO] [stdout] test config::tests::config_uses_defaults_when_optional_values_are_missing ... ok [INFO] [stdout] test config::tests::config_rejects_non_numeric_max_results ... ok [INFO] [stdout] test config::tests::config_clamps_max_results_into_supported_range ... ok [INFO] [stdout] test config::tests::config_normalizes_language_to_lowercase ... ok [INFO] [stdout] test config::tests::config_rejects_delimiters_only_language_options_input ... ok [INFO] [stdout] test config::tests::config_parses_language_options_with_order_and_dedup ... ok [INFO] [stdout] test config::tests::config_rejects_invalid_language_options_token ... ok [INFO] [stdout] test feedback::tests::error_feedback_returns_single_invalid_item ... ok [INFO] [stdout] test feedback::tests::feedback_empty_snippet_uses_fallback_subtitle ... ok [INFO] [stdout] test config::tests::config_rejects_invalid_language_format ... ok [INFO] [stdout] test feedback::tests::feedback_language_switch_items_follow_configured_order ... ok [INFO] [stdout] test feedback::tests::feedback_language_switch_items_use_requery_arg_contract ... ok [INFO] [stdout] test feedback::tests::feedback_maps_result_to_alfred_item ... ok [INFO] [stdout] test feedback::tests::feedback_no_results_item_is_invalid_and_has_expected_title ... ok [INFO] [stdout] test feedback::tests::url_builds_curid_canonical_url ... ok [INFO] [stdout] test wiki_api::tests::wiki_api_build_endpoint_uses_runtime_language_host ... ok [INFO] [stdout] test wiki_api::tests::wiki_api_build_query_params_follows_contract ... ok [INFO] [stdout] test wiki_api::tests::wiki_api_parse_search_response_extracts_result_fields ... ok [INFO] [stdout] test wiki_api::tests::wiki_api_parse_search_response_ignores_results_missing_required_fields ... ok [INFO] [stdout] test wiki_api::tests::wiki_api_parse_search_response_rejects_invalid_success_json ... ok [INFO] [stdout] test wiki_api::tests::wiki_api_parse_search_response_surfaces_api_error_message ... ok [INFO] [stdout] test feedback::tests::feedback_strips_html_tags_and_truncates ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/wiki_cli-c4156d0730a2092e) [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test tests::main_service_error_envelope_has_required_error_fields ... ok [INFO] [stdout] test tests::main_maps_invalid_response_failures_to_runtime_error_kind ... ok [INFO] [stdout] test tests::main_search_service_json_mode_wraps_result_in_v1_envelope ... ok [INFO] [stdout] test tests::main_search_rows_include_configured_language_switch_items_in_order ... ok [INFO] [stdout] test tests::main_rejects_empty_query_as_user_error ... ok [INFO] [stdout] test tests::main_surfaces_config_errors_with_user_exit_kind ... ok [INFO] [stdout] test tests::main_search_command_outputs_feedback_json_contract ... ok [INFO] [stdout] test tests::main_help_flag_is_supported ... ok [INFO] [stdout] test tests::main_maps_http_api_failures_to_runtime_error_kind ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-70c56b27b188d731) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test cli_contract::alfred_mode_keeps_stderr_error_behavior ... ok [INFO] [stdout] test cli_contract::service_json_error_envelope_has_required_keys_and_no_secret_leak ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/workflow_cli-c164dbb3c8b86866) [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test tests::action_commands_report_user_error_for_invalid_path ... ok [INFO] [stdout] test tests::script_filter_error_redaction_masks_sensitive_tokens ... ok [INFO] [stdout] test tests::github_url_accepts_ssh_url_remote_format ... ok [INFO] [stdout] test tests::script_filter_github_mode_sets_primary_item_icon ... ok [INFO] [stdout] test tests::github_url_command_resolves_gitlab_subgroup_origin ... ok [INFO] [stdout] test tests::script_filter_default_mode_keeps_alfred_json_contract ... ok [INFO] [stdout] test tests::action_commands_output_plain_values ... ok [INFO] [stdout] test tests::script_filter_command_outputs_json_contract ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-39cd7f54c58b9c70) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test cli_contract::script_filter_unknown_output_value_is_rejected_by_clap ... ok [INFO] [stdout] test cli_contract::human_error_output_redacts_secret_like_path_value ... ok [INFO] [stdout] test cli_contract::script_filter_json_mode_returns_success_envelope ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/workflow_common-ae37fceb8c3f4b51) [INFO] [stdout] [INFO] [stdout] running 42 tests [INFO] [stdout] test config::tests::output_mode_defaults_to_alfred_json ... ok [INFO] [stdout] test config::tests::output_mode_env_parser_accepts_known_values ... ok [INFO] [stdout] test config::tests::open_project_max_results_uses_default_and_clamps ... ok [INFO] [stdout] test config::tests::expands_home_tokens_for_usage_file ... ok [INFO] [stdout] test discovery::tests::query_filter_handles_empty_and_non_empty_queries ... ok [INFO] [stdout] test config::tests::parses_multiple_project_dirs ... ok [INFO] [stdout] test config::tests::expands_home_tokens_for_vscode_path ... ok [INFO] [stdout] test feedback::tests::no_projects_feedback_is_invalid_item ... ok [INFO] [stdout] test feedback::tests::subtitle_format_uses_commit_and_usage_fallbacks ... ok [INFO] [stdout] test git::tests::github_remote_normalizes_ssh_and_https_formats ... ok [INFO] [stdout] test git::tests::github_remote_rejects_subgroup_path ... ok [INFO] [stdout] test git::tests::gitlab_ssh_with_subgroup_resolves ... ok [INFO] [stdout] test git::tests::gitlab_https_with_subgroup_resolves ... ok [INFO] [stdout] test git::tests::gitlab_ssh_two_segment_path_resolves ... ok [INFO] [stdout] test git::tests::single_segment_path_returns_unsupported_remote ... ok [INFO] [stdout] test list_parser::tests::parse_ordered_list_with_supports_normalization_hook ... ok [INFO] [stdout] test git::tests::self_hosted_host_resolves_without_configuration ... ok [INFO] [stdout] test list_parser::tests::parse_ordered_list_with_supports_skip_hook ... ok [INFO] [stdout] test git::tests::malformed_remote_returns_unsupported_remote ... ok [INFO] [stdout] test git::tests::gitlab_ssh_url_with_port_resolves ... ok [INFO] [stdout] test list_parser::tests::parse_ordered_list_with_surfaces_typed_errors ... ok [INFO] [stdout] test list_parser::tests::split_ordered_list_keeps_duplicates_for_caller_level_dedup ... ok [INFO] [stdout] test output_contract::tests::feedback_envelope_builder_wraps_feedback_payload ... ok [INFO] [stdout] test git::tests::host_match_is_case_insensitive ... ok [INFO] [stdout] test output_contract::tests::redaction_masks_sensitive_patterns ... ok [INFO] [stdout] test list_parser::tests::split_ordered_list_preserves_mixed_separator_order ... ok [INFO] [stdout] test output_contract::tests::alfred_error_feedback_builder_redacts_sensitive_message ... ok [INFO] [stdout] test list_parser::tests::split_ordered_list_ignores_empty_tokens ... ok [INFO] [stdout] test output_contract::tests::envelope_builders_emit_required_keys ... ok [INFO] [stdout] test usage_log::tests::usage_log_keeps_latest_occurrence_for_same_key ... ok [INFO] [stdout] test usage_log::tests::usage_log_parse_timestamp_invalid_falls_back_to_zero ... ok [INFO] [stdout] test usage_log::tests::usage_log_prefers_path_key_then_name_fallback ... ok [INFO] [stdout] test git::tests::web_url_reports_missing_origin_when_no_remote ... ok [INFO] [stdout] test output_contract::tests::output_mode_parse_accepts_canonical_values_only ... ok [INFO] [stdout] test feedback::tests::github_mode_sets_primary_item_icon ... ok [INFO] [stdout] test feedback::tests::shift_modifier_uses_github_icon ... ok [INFO] [stdout] test usage_log::tests::usage_log_record_usage_replaces_legacy_name_key ... ok [INFO] [stdout] test discovery::tests::project_scan_discovers_multiple_roots_and_skips_missing ... ok [INFO] [stdout] test feedback::tests::empty_query_respects_max_results_limit ... ok [INFO] [stdout] test feedback::tests::sort_order_prioritizes_recent_usage_timestamp ... ok [INFO] [stdout] test feedback::tests::non_empty_query_is_not_limited_by_max_results ... ok [INFO] [stdout] test feedback::tests::max_results_limits_number_of_feedback_items ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/workflow_readme_cli-97b167e47465b094) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test tests::inject_readme_replaces_existing_value ... ok [INFO] [stdout] test tests::xml_escape_handles_reserved_chars ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/workflow_readme_cli-feabb09c1974b2d0) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-fdaf18df7daea546) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test codex_readme_fixtures::codex_fixture_removes_table_separators_and_keeps_screenshot_reference ... ok [INFO] [stdout] test table_downgrade::converts_markdown_table_to_deterministic_bullets ... ok [INFO] [stdout] test image_assets::rejects_remote_image_urls ... ok [INFO] [stdout] test image_assets::detects_and_copies_local_image_assets ... ok [INFO] [stdout] test cli_contract::unknown_output_value_is_rejected_by_clap ... ok [INFO] [stdout] test cli_contract::service_json_success_envelope_has_required_keys ... ok [INFO] [stdout] test cli_contract::service_json_error_envelope_has_required_keys ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/youtube_cli-d6e035ac8c04d142) [INFO] [stdout] [INFO] [stdout] running 17 tests [INFO] [stdout] test config::tests::config_clamps_max_results_into_supported_range ... ok [INFO] [stdout] test config::tests::config_normalizes_region_code_to_uppercase ... ok [INFO] [stdout] test config::tests::config_requires_youtube_api_key ... ok [INFO] [stdout] test config::tests::config_uses_default_max_results_when_missing ... ok [INFO] [stdout] test feedback::tests::feedback_maps_videos_to_alfred_items ... ok [INFO] [stdout] test feedback::tests::error_feedback_returns_single_invalid_item ... ok [INFO] [stdout] test feedback::tests::feedback_no_results_is_invalid_item ... ok [INFO] [stdout] test config::tests::config_rejects_invalid_region_code_format ... ok [INFO] [stdout] test feedback::tests::watch_url_builds_canonical_watch_link ... ok [INFO] [stdout] test youtube_api::tests::youtube_api_build_query_params_follows_contract ... ok [INFO] [stdout] test youtube_api::tests::youtube_api_build_query_params_includes_region_code_when_present ... ok [INFO] [stdout] test youtube_api::tests::youtube_api_parse_search_response_extracts_video_fields ... ok [INFO] [stdout] test youtube_api::tests::youtube_api_parse_search_response_ignores_items_missing_required_fields ... ok [INFO] [stdout] test config::tests::config_rejects_non_numeric_max_results ... ok [INFO] [stdout] test youtube_api::tests::youtube_api_parse_search_response_rejects_invalid_success_json ... ok [INFO] [stdout] test youtube_api::tests::youtube_api_parse_search_response_surfaces_api_error_message ... ok [INFO] [stdout] test feedback::tests::feedback_subtitle_truncation_is_deterministic_and_single_line ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/youtube_cli-569ae630aa05e452) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test tests::main_service_error_envelope_has_required_error_fields ... ok [INFO] [stdout] test tests::main_maps_api_failures_to_runtime_error_kind ... ok [INFO] [stdout] test tests::main_rejects_empty_query_as_user_error ... ok [INFO] [stdout] test tests::main_surfaces_config_errors_with_user_exit_kind ... ok [INFO] [stdout] test tests::main_help_flag_is_supported ... ok [INFO] [stdout] test tests::main_search_command_outputs_feedback_json_contract ... ok [INFO] [stdout] test tests::main_search_service_json_mode_wraps_result_in_v1_envelope ... ok [INFO] [stdout] [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-f52e6ff4ad5e1a5d) [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test cli_contract::alfred_mode_keeps_stderr_error_behavior ... ok [INFO] [stdout] test cli_contract::service_json_error_envelope_has_required_keys_and_no_secret_leak ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Doc-tests alfred_core [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests alfred_plist [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests bangumi_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests bilibili_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests brave_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests cambridge_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests epoch_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests google_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests market_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests memo_workflow_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests quote_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests randomer_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests spotify_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests steam_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests timezone_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests weather_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests wiki_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests workflow_common [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests workflow_readme_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests youtube_cli [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "33f442fd891f5efe014a0f992dfcc97afd4a770f94a213799371288ad1361dfb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "33f442fd891f5efe014a0f992dfcc97afd4a770f94a213799371288ad1361dfb", kill_on_drop: false }` [INFO] [stdout] 33f442fd891f5efe014a0f992dfcc97afd4a770f94a213799371288ad1361dfb