[INFO] cloning repository https://github.com/ffdm/feedfold [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ffdm/feedfold" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fffdm%2Ffeedfold", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fffdm%2Ffeedfold'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 2b2107212eb764e6b50c15c6b674877b94e69108 [INFO] testing ffdm/feedfold against 1.99.0-beta.8 for beta-1.100-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fffdm%2Ffeedfold" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/ffdm/feedfold [INFO] finished tweaking git repo https://github.com/ffdm/feedfold [INFO] tweaked toml for git repo https://github.com/ffdm/feedfold written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/ffdm/feedfold on toolchain 1.99.0-beta.8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/ffdm/feedfold already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded viuer v0.9.2 [INFO] [stderr] Downloaded rgb v0.8.53 [INFO] [stderr] Downloaded ravif v0.13.0 [INFO] [stderr] Downloaded bitstream-io v4.10.0 [INFO] [stderr] Downloaded gif v0.14.2 [INFO] [stderr] Downloaded ansi_colours v1.2.3 [INFO] [stderr] Downloaded pxfm v0.1.28 [INFO] [stderr] Downloaded tokio v1.52.0 [INFO] [stderr] Downloaded ratatui v0.30.0 [INFO] [stderr] Downloaded ratatui-widgets v0.3.0 [INFO] [stderr] Downloaded unicode-truncate v2.0.1 [INFO] [stderr] Downloaded ratatui-core v0.1.0 [INFO] [stderr] Downloaded kasuari v0.4.12 [INFO] [stderr] Downloaded line-clipping v0.3.7 [INFO] [stderr] Downloaded instability v0.3.12 [INFO] [stderr] Downloaded wezterm-input-types v0.1.0 [INFO] [stderr] Downloaded wezterm-dynamic-derive v0.1.1 [INFO] [stderr] Downloaded ratatui-termwiz v0.1.0 [INFO] [stderr] Downloaded termwiz v0.23.3 [INFO] [stderr] Downloaded wezterm-color-types v0.3.0 [INFO] [stderr] Downloaded csscolorparser v0.6.2 [INFO] [stderr] Downloaded wezterm-dynamic v0.2.1 [INFO] [stderr] Downloaded atomic v0.6.1 [INFO] [stderr] Downloaded deltae v0.3.2 [INFO] [stderr] Downloaded lab v0.11.0 [INFO] [stderr] Downloaded wezterm-blob-leases v0.1.1 [INFO] [stderr] Downloaded pest_derive v2.8.6 [INFO] [stderr] Downloaded pest_meta v2.8.6 [INFO] [stderr] Downloaded wezterm-bidi v0.2.3 [INFO] [stderr] Downloaded pest_generator v2.8.6 [INFO] [stderr] Downloaded vtparse v0.6.2 [INFO] [stderr] Downloaded terminfo v0.9.0 [INFO] [stderr] Downloaded memmem v0.1.1 [INFO] [stderr] Downloaded termios v0.3.3 [INFO] [stderr] Downloaded finl_unicode v1.4.0 [INFO] [stderr] Downloaded fancy-regex v0.11.0 [INFO] [stderr] Downloaded ratatui-macros v0.7.0 [INFO] [stderr] Downloaded ratatui-crossterm v0.1.0 [INFO] [stderr] Downloaded open v5.3.3 [INFO] [stderr] Downloaded is-docker v0.2.0 [INFO] [stderr] Downloaded is-wsl v0.4.0 [INFO] [stderr] Downloaded hashlink v0.9.1 [INFO] [stderr] Downloaded rusqlite v0.31.0 [INFO] [stderr] Downloaded libsqlite3-sys v0.28.0 [INFO] [stderr] Downloaded quick-xml v0.37.5 [INFO] [stderr] Downloaded feed-rs v2.3.1 [INFO] [stderr] Downloaded mediatype v0.19.20 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 490f96455cf6c2eaf412013eb9a3e1752e7e8e8ddd3d1c997dee2319a6680780 [INFO] running `Command { std: "docker" "start" "490f96455cf6c2eaf412013eb9a3e1752e7e8e8ddd3d1c997dee2319a6680780", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "490f96455cf6c2eaf412013eb9a3e1752e7e8e8ddd3d1c997dee2319a6680780", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "490f96455cf6c2eaf412013eb9a3e1752e7e8e8ddd3d1c997dee2319a6680780" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "490f96455cf6c2eaf412013eb9a3e1752e7e8e8ddd3d1c997dee2319a6680780", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "490f96455cf6c2eaf412013eb9a3e1752e7e8e8ddd3d1c997dee2319a6680780" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.185 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling cc v1.2.60 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling zerocopy-derive v0.8.48 [INFO] [stderr] Compiling unicode-segmentation v1.13.2 [INFO] [stderr] Compiling equator-macro v0.4.2 [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling equator v0.4.2 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling aligned-vec v0.6.4 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling rustls v0.23.38 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling libsqlite3-sys v0.28.0 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling tokio v1.52.0 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling num-rational v0.4.2 [INFO] [stderr] Compiling v_frame v0.3.9 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling as-slice v0.2.1 [INFO] [stderr] Compiling av-scenechange v0.14.1 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling instability v0.3.12 [INFO] [stderr] Compiling built v0.8.0 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling aligned v0.4.3 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling rav1e v0.8.1 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling rayon v1.12.0 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling rustls-webpki v0.103.12 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling lru v0.16.4 [INFO] [stderr] Compiling kasuari v0.4.12 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling profiling-procmacros v1.0.17 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Compiling no_std_io2 v0.9.3 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling quick-error v2.0.1 [INFO] [stderr] Compiling pastey v0.1.1 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling y4m v0.8.0 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling bitstream-io v4.10.0 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling profiling v1.0.17 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling av1-grain v0.2.5 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling rgb v0.8.53 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling fax_derive v0.2.0 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Compiling maybe-rayon v0.1.1 [INFO] [stderr] Compiling weezl v0.1.12 [INFO] [stderr] Compiling zune-core v0.5.1 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling imgref v1.12.0 [INFO] [stderr] Compiling new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling noop_proc_macro v0.3.0 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling loop9 v0.1.5 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling zune-jpeg v0.5.15 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling fax v0.2.6 [INFO] [stderr] Compiling quick-xml v0.37.5 [INFO] [stderr] Compiling hyper-rustls v0.27.9 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling directories v5.0.1 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling avif-serialize v0.8.8 [INFO] [stderr] Compiling mediatype v0.19.20 [INFO] [stderr] Compiling zune-inflate v0.2.54 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling line-clipping v0.3.7 [INFO] [stderr] Compiling siphasher v1.0.2 [INFO] [stderr] Compiling byteorder-lite v0.1.0 [INFO] [stderr] Compiling bit_field v0.10.3 [INFO] [stderr] Compiling pxfm v0.1.28 [INFO] [stderr] Compiling color_quant v1.1.0 [INFO] [stderr] Compiling lebe v0.5.3 [INFO] [stderr] Compiling image-webp v0.2.4 [INFO] [stderr] Compiling gif v0.14.2 [INFO] [stderr] Compiling exr v1.74.0 [INFO] [stderr] Compiling feed-rs v2.3.1 [INFO] [stderr] Compiling rusqlite v0.31.0 [INFO] [stderr] Compiling png v0.18.1 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling feedfold-core v0.1.0 (/opt/rustwide/workdir/crates/feedfold-core) [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling tiff v0.11.3 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling ravif v0.13.0 [INFO] [stderr] Compiling moxcms v0.8.1 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling qoi v0.4.1 [INFO] [stderr] Compiling is-docker v0.2.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling is-wsl v0.4.0 [INFO] [stderr] Compiling feedfold-adapters v0.1.0 (/opt/rustwide/workdir/crates/feedfold-adapters) [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling ratatui-macros v0.7.0 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling ansi_colours v1.2.3 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling termcolor v1.4.1 [INFO] [stderr] Compiling open v5.3.3 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling feedfold-daemon v0.1.0 (/opt/rustwide/workdir/crates/feedfold-daemon) [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling image v0.25.10 [INFO] [stderr] Compiling viuer v0.9.2 [INFO] [stderr] Compiling feedfold-tui v0.1.0 (/opt/rustwide/workdir/crates/feedfold-tui) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 13s [INFO] running `Command { std: "docker" "inspect" "490f96455cf6c2eaf412013eb9a3e1752e7e8e8ddd3d1c997dee2319a6680780", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "490f96455cf6c2eaf412013eb9a3e1752e7e8e8ddd3d1c997dee2319a6680780" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling feedfold-daemon v0.1.0 (/opt/rustwide/workdir/crates/feedfold-daemon) [INFO] [stderr] Compiling feedfold-adapters v0.1.0 (/opt/rustwide/workdir/crates/feedfold-adapters) [INFO] [stderr] Compiling feedfold-core v0.1.0 (/opt/rustwide/workdir/crates/feedfold-core) [INFO] [stderr] Compiling feedfold-tui v0.1.0 (/opt/rustwide/workdir/crates/feedfold-tui) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 15.57s [INFO] running `Command { std: "docker" "inspect" "490f96455cf6c2eaf412013eb9a3e1752e7e8e8ddd3d1c997dee2319a6680780", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "490f96455cf6c2eaf412013eb9a3e1752e7e8e8ddd3d1c997dee2319a6680780" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.57s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/feedfold_adapters-13c2bead309bd6b2) [INFO] [stdout] [INFO] [stdout] running 16 tests [INFO] [stdout] test claude::tests::claude_ranker_skips_network_for_empty_entries ... ok [INFO] [stdout] test rss::tests::adapter_reports_kind_as_rss ... ok [INFO] [stdout] test youtube::tests::api_fallback_fails_clearly_without_key ... ok [INFO] [stdout] test rss::tests::convert_entry_pulls_expected_fields ... ok [INFO] [stdout] test youtube::tests::converts_playlist_item_to_entry ... ok [INFO] [stdout] test youtube::tests::extracts_channel_id_from_feed_url ... ok [INFO] [stdout] test youtube::tests::extract_video_id_prefers_external_id ... ok [INFO] [stdout] test youtube::tests::adapter_reports_kind_as_youtube ... ok [INFO] [stdout] test youtube::tests::fetch_applies_youtube_api_enrichments ... ok [INFO] [stdout] test youtube::tests::fetch_video_enrichments_batches_requests ... ok [INFO] [stdout] test claude::tests::claude_ranker_loads_interests_from_config ... ok [INFO] [stdout] test youtube::tests::skips_non_video_playlist_items ... ok [INFO] [stdout] test claude::tests::claude_ranker_rejects_invalid_rankings ... ok [INFO] [stdout] test claude::tests::claude_ranker_posts_request_and_returns_scores ... ok [INFO] [stdout] test claude::tests::claude_ranker_includes_rating_history_in_user_prompt ... ok [INFO] [stdout] test youtube::tests::falls_back_to_api_on_rss_404 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/feedfold_core-f9f30fc1ee982737) [INFO] [stdout] [INFO] [stdout] running 39 tests [INFO] [stdout] test config::tests::bootstrap_does_not_overwrite_existing_config ... ok [INFO] [stdout] test adapter::tests::fake_adapter_returns_fetched_feed ... ok [INFO] [stdout] test config::tests::empty_config_uses_defaults ... ok [INFO] [stdout] test config::tests::bundled_example_config_parses ... ok [INFO] [stdout] test config::tests::parses_full_sample ... ok [INFO] [stdout] test adapter::tests::fetched_entry_into_new_entry_keeps_fields ... ok [INFO] [stdout] test config::tests::bootstrap_writes_example_when_config_is_missing ... ok [INFO] [stdout] test config::tests::youtube_api_key_defaults_to_none ... ok [INFO] [stdout] test adapter::tests::fake_adapter_reports_invalid_response ... ok [INFO] [stdout] test config::tests::per_source_ranking_defaults_to_none ... ok [INFO] [stdout] test config::tests::per_source_top_n_defaults_to_none ... ok [INFO] [stdout] test config::tests::youtube_api_key_from_config ... ok [INFO] [stdout] test ranker::tests::recency_ranker_empty_entries ... ok [INFO] [stdout] test ranker::tests::popularity_ranker_prefers_higher_view_counts ... ok [INFO] [stdout] test storage::tests::insert_and_list_sources ... ok [INFO] [stdout] test storage::tests::list_enrichments_for_source_groups_by_entry ... ok [INFO] [stdout] test ranker::tests::popularity_ranker_keeps_viewed_entries_above_plain_recency_fallbacks ... ok [INFO] [stdout] test ranker::tests::recency_ranker_handles_no_published_at ... ok [INFO] [stdout] test ranker::tests::popularity_ranker_falls_back_to_recency_without_valid_view_count ... ok [INFO] [stdout] test ranker::tests::recency_ranker_sorts_newest_first ... ok [INFO] [stdout] test storage::tests::apply_ranking_sets_scores_and_top_n ... ok [INFO] [stdout] test storage::tests::list_viewed_entries_includes_starred_entries ... ok [INFO] [stdout] test storage::tests::list_rated_entries_respects_limit ... ok [INFO] [stdout] test storage::tests::list_top_n_entries_orders_by_score_then_date ... ok [INFO] [stdout] test storage::tests::list_viewed_entries_excludes_new_entries ... ok [INFO] [stdout] test storage::tests::list_rated_entries_returns_only_rated_entries_in_recency_order ... ok [INFO] [stdout] test storage::tests::list_overflow_entries_returns_only_new_entries_outside_top_n ... ok [INFO] [stdout] test storage::tests::list_viewed_entries_orders_by_most_recent_view ... ok [INFO] [stdout] test storage::tests::open_in_memory_creates_schema ... ok [INFO] [stdout] test storage::tests::list_overflow_entries_orders_by_score_then_date ... ok [INFO] [stdout] test storage::tests::search_entries_matches_title_and_summary ... ok [INFO] [stdout] test storage::tests::unique_url_constraint ... ok [INFO] [stdout] test storage::tests::record_entry_view_marks_entry_viewed_and_counts_unique_daily_views ... ok [INFO] [stdout] test storage::tests::set_entry_rating_rejects_out_of_range_values ... ok [INFO] [stdout] test storage::tests::search_entries_requires_all_query_terms ... ok [INFO] [stdout] test storage::tests::source_by_url_roundtrip ... ok [INFO] [stdout] test storage::tests::upsert_entries_persists_and_updates_enrichments ... ok [INFO] [stdout] test storage::tests::upsert_entries_deduplicates_and_lists ... ok [INFO] [stdout] test storage::tests::set_entry_rating_persists_rating ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/feedfold_daemon-c24b6d81fdd90cc7) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test tests::configured_ranking_mode_uses_global_default ... ok [INFO] [stdout] test tests::rotated_log_path_adds_numeric_suffix ... ok [INFO] [stdout] test tests::configured_ranking_mode_prefers_source_override ... ok [INFO] [stdout] test tests::pid_file_guard_removes_file_on_drop ... ok [INFO] [stdout] test tests::rotating_log_writer_moves_large_file_to_backup ... ok [INFO] [stdout] test tests::rank_entries_uses_claude_when_configured ... ok [INFO] [stdout] test tests::rank_entries_falls_back_to_recency_when_claude_is_unavailable ... 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/main.rs (/opt/rustwide/target/debug/deps/feedfold-13fb7edf5a0ef144) [INFO] [stdout] [INFO] [stdout] running 45 tests [INFO] [stdout] test opml::tests::detects_youtube_feed_urls ... ok [INFO] [stdout] test opml::tests::parses_flat_outline_list ... ok [INFO] [stdout] test opml::tests::deduplicates_repeated_urls ... ok [INFO] [stdout] test opml::tests::decodes_xml_entities_in_title ... ok [INFO] [stdout] test opml::tests::skips_outlines_without_xmlurl ... ok [INFO] [stdout] test tests::detail_lines_show_rating_as_stars ... ok [INFO] [stdout] test tests::detail_lines_show_youtube_view_count ... ok [INFO] [stdout] test opml::tests::rejects_non_opml_content ... ok [INFO] [stdout] test opml::tests::renders_valid_opml_that_round_trips_through_parser ... ok [INFO] [stdout] test tests::detail_lines_include_title_and_summary ... ok [INFO] [stdout] test opml::tests::parses_nested_categories ... ok [INFO] [stdout] test tests::compact_count_formats_at_thresholds ... ok [INFO] [stdout] test tests::launchctl_service_target_uses_label_suffix ... ok [INFO] [stdout] test tests::extract_channel_id_from_youtube_html_finds_feed_links ... ok [INFO] [stdout] test opml::tests::renders_empty_export_with_valid_root_elements ... ok [INFO] [stdout] test tests::launch_agent_path_uses_home_library_launchagents ... ok [INFO] [stdout] test tests::overflow_title_is_static ... ok [INFO] [stdout] test tests::parse_launchctl_service_status_marks_missing_service_as_unloaded ... ok [INFO] [stdout] test tests::normalize_direct_youtube_url_handles_channel_paths ... ok [INFO] [stdout] test tests::parse_launchctl_service_status_rejects_other_launchctl_failures ... ok [INFO] [stdout] test tests::parse_launchctl_pid_accepts_plain_pid_output ... ok [INFO] [stdout] test tests::parse_launchctl_service_status_reads_state_and_pid ... ok [INFO] [stdout] test tests::probable_youtube_short_uses_three_minute_cutoff_after_october_2024 ... ok [INFO] [stdout] test tests::ready_thumbnail_clears_placeholder_text ... ok [INFO] [stdout] test tests::rebuild_channel_rows_includes_all_sources ... ok [INFO] [stdout] test tests::probable_youtube_short_uses_legacy_sixty_second_cutoff_before_october_2024 ... ok [INFO] [stdout] test tests::read_daemon_status_returns_none_for_missing_pid_file ... ok [INFO] [stdout] test tests::probable_youtube_short_falls_back_to_sixty_seconds_when_orientation_is_missing ... ok [INFO] [stdout] test tests::probable_youtube_short_requires_square_or_vertical_player_without_text_hints ... ok [INFO] [stdout] test tests::render_launchd_plist_embeds_escaped_paths_and_internal_daemon_mode ... ok [INFO] [stdout] test tests::search_title_tracks_editing_state ... ok [INFO] [stdout] test tests::strip_html_converts_block_elements_to_newlines ... ok [INFO] [stdout] test tests::strip_html_decodes_numeric_entities ... ok [INFO] [stdout] test tests::strip_html_handles_list_items ... ok [INFO] [stdout] test tests::read_daemon_status_accepts_current_process_pid ... ok [INFO] [stdout] test tests::strip_html_passes_plain_text_through ... ok [INFO] [stdout] test tests::thumbnail_cache_path_is_stable_for_the_same_url ... ok [INFO] [stdout] test tests::strip_html_removes_tags_and_decodes_entities ... ok [INFO] [stdout] test tests::viewed_title_includes_todays_count ... ok [INFO] [stdout] test tests::filter_youtube_content_hides_probable_shorts_without_touching_landscape_videos ... ok [INFO] [stdout] test tests::toggling_star_in_overflow_refreshes_the_list ... ok [INFO] [stdout] test tests::refresh_view_includes_starred_entries_in_viewed_list ... ok [INFO] [stdout] test tests::refresh_view_loads_only_overflow_entries ... ok [INFO] [stdout] test tests::refresh_view_loads_viewed_entries_and_today_count ... ok [INFO] [stdout] test tests::refresh_view_uses_search_results_over_active_view ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 45 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] [stderr] Doc-tests feedfold_adapters [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 feedfold_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 feedfold_daemon [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" "490f96455cf6c2eaf412013eb9a3e1752e7e8e8ddd3d1c997dee2319a6680780", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "490f96455cf6c2eaf412013eb9a3e1752e7e8e8ddd3d1c997dee2319a6680780", kill_on_drop: false }` [INFO] [stdout] 490f96455cf6c2eaf412013eb9a3e1752e7e8e8ddd3d1c997dee2319a6680780