You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
test(fetcher/feed): cover render_image_bodySome(url) => …Ok(Some(path)) arm and render_image_linkedpath.map(|p| …) Some/None row shapes by pre-seeding $SPLASHBOARD_HOME/cache/thumbnails/<sha256(url)>.png so thumbnails::download_to_cache short-circuits to existing_cached without touching the network per [[project_thumbnail_cache_preseed_trick]], plus restore_splashboard_home Some(value) => set_var arm via pre-seeding SPLASHBOARD_HOME before capture so the save→mutate→restore flow observes Some(...) instead of the default-unset None arm per [[feedback_coverage_test_panic_arms]] (65b3b04)
test(fetcher/random_dog): cover fetch_image_url send().await.map_err arm via raw-space-in-authority URL that fails synchronously at reqwest::Url::parse without touching random.dog, mirroring the sibling fetch_bytes_rejects_malformed_url trick for the image-download leg so the "dog API request failed:" branch stops registering as an uncovered region per [[feedback_coverage_test_panic_arms]] (1cba773)
test(fetcher/random_cat,random_dog): cover restore_home Some(value) => set_var arm by pre-seeding SPLASHBOARD_HOME before capturing the prior value so the save→mutate→restore flow observes Some(...) instead of the default-unset None arm, asserting the captured path is reapplied after a mutation (5cce5f8)
test(fetcher/linear/client): cover graphql_query send_with_retry map_err arm and ?-propagation in-process via newline-in-bearer-token trick that fails synchronously at .send().await, attaching coverage to the parent report unlike the existing child-process proxy test (a87dfd6)
test(fetcher/github/client): cover rest_get/graphql send().await.map_err arms via newline-in-bearer-token trick that fails synchronously at builder time without touching api.github.com, and resolve_authenticated_user ?-propagation arm on cache miss when rest_get errors before the if let Some(cached) Some-arm can short-circuit (5dd4360)
test(fetcher/deariary/client): cover send_with_retry http().get(...).send().await.map_err arm via newline-in-token invalid bearer header that fails synchronously at send time, plus cached_get_entry/cached_get_entries Instant::now() < cached.expires false arms reached only by seeding expired CacheSlots manually (production callers hit it via wall-clock drift across refresh cycles), and get_optional/get_required ?-propagation arms before the FetchOutcome match or JSON parser run (50df488)
test(fetcher/code/comments): cover scan_repo sort_by closure primary partial_cmp arm via Rust 50%/Python 0% ratio ordering and secondary then_with name-ascending tiebreaker via two 0%-ratio languages, plus ratio_of if denom == 0 zero-denominator arm that production callers can't reach because scan_repo's code + comments > 0 filter drops empty entries before they hit by_language (0482b2f)
docs(perf): tighten inaccurate claims after code audit (da806f2)
docs: add Performance guide for cache and refresh model (fac85cc)
test(fetcher/reddit/client): cover get_with_profile reqwest::sendmap_err arm via a malformed authority that fails URL parse before hitting the wire, and fetch_listing's get_with_retry? propagation when both Minimal/Browserish profiles fail on a space-containing path that trips SITE_BASE concatenation parse (e247747)
test(fetcher/net/ip): cover text_value IpKind::V6 fall-back when the default interface has no IPv6 and IpKind::Primary terminal unwrap_or_else "no address" arm when the default carries neither v4 nor v6, plus ip_badge IPv6-only arm distinct from the IPv4-only and dual-stack cases, and assert NetIp description mentions both Text and Badge shape roles (66533a3)
test(fetcher/stock_watchlist): cover format_price EUR/KRW glyph arms, number_series_body all-non-finite baseline else fallback that pins to 0.0 instead of INFINITY, and StockPoint::from_api currency unwrap_or_else default to "usd" when the API omits the field (27fcf10)
test(fetcher/linear/notifications): cover Fetcher metadata trait methods, sample_body declared-shape round-trip plus Image/Ratio None fallback, markdown_line_for identifier/actor/title arms with snippet fallback, and entry_value actor/type/title separator joining with snippet fallback (a8c028c)
test(fetcher/github/action_history): cover sample_body Shape::Bars passed/failed arm, render_body bars success-vs-non-success conclusion bucketing and empty-runs zero-counts, and cache_key no-options fallback through resolve_repo(None) to the workspace git remote (9fa6301)
test(fetcher/stock_watchlist): cover fetch_snapshot empty-input no-data fallback via direct call with an empty slice that bypasses resolve_symbols' public-entrypoint guard (6d87d52)
test(fetcher/news): cover fetch malformed-bundled-url early-return arm via a synthetic NewsSource whose hardcoded url fails Url::parse before network I/O (de9186e)
test(fetcher/news): cover fetch early-return arms for invalid options deny_unknown_fields and unknown feed key before network I/O (cd5b09f)
test(fetcher/system): cover env_basename file_name-less path trimmed fallback and detect_terminal hyper TERM_PROGRAM arm (996a3c3)
test(fetcher/net/gateway): cover description/refresh_interval metadata, cache_key name-prefix and options partitioning, fetch unsupported-shape text fallback, plus mod-level default_gateway snapshot stability and gateway_ip ipv4-first/ipv6-fallback/empty preference order (586781e)
test(fetcher/weather/forecast): cover weekday_short labels for all seven weekday variants and ratio empty-forecast zero-value no-label fallback (8c252eb)
test(fetcher/git): cover commits_activity text-shape empty-grid body and number-series flatten wrapping, plus mod-level fail display wrapping, payload/text_body/text_block_body shapes, and open_repo/discover_root/repo_cache_key shape-variance against the splashboard workspace (62ab7c4)
test(fetcher/git/age): cover sample_for shape gating, fetcher metadata, cache_key shape/format variance, structural-shape build dispatch, empty-repo markdown/calendar placeholders, january previous-december day borrow, zero-age today label, and fetch text payload inside a real repo (2bb1846)
test(fetcher/youtube): cover fetch_and_merge no-channels-yielded-entries fallback on empty input (0561698)
test(fetcher/crypto_watchlist): cover empty-snapshot text fallback, top-mover arrow/change formatting, per-coin text block lines, eur/gbp currency glyphs, integer-only thousands grouping, payload chrome stripping, http singleton reuse, and non-finite sparkline baseline collapse (ac2c5eb)
test(fetcher/reddit): cover subreddit/user_posts description sibling references and render_for_shape image-list vs sync dispatch on empty input (5269c71)
test(fetcher/net/speedtest): cover http singleton reuse and measure_download/latency/upload plus download_chunk request-failure paths (5491e69)
test(fetcher/system): cover info_host kind variants and monitor_disk text-shape dispatch (0e0e707)
test(fetcher/basic): cover metadata, sample_body shape gating, and invalid-options placeholders across the basic family (f45e612)
test(fetcher/weather/common): cover unit labels, WMO description/badge/severity tables, http singleton, parse_options errors, and payload wrapper (520870a)
test(fetcher/system): cover info_* kind dispatch defaults, known variants, and unknown-kind placeholder (8095e97)
test(fetcher/feed): cover render_body shapes, link/thumbnail fallbacks, and parse_feed errors (a25b836)
test(fetcher/news): cover category labels, default_feed, and find_feed lookup (c4a3e51)
test(system/dmi): cover full chassis label table + reader smoke test (5205a03)
chore: update flake.nix hashes for v2.2.0 (8ad5aa3)
test(fetcher/crypto_watchlist): replace let-else/unwrap_or_else panic arms with matches! assertions across entries_body volatility status rows, number_series baseline-deviation centi-units and NaN-zeroed sparkline, point_series MAX_SERIES_COINS cap and hour-indexed x-axis, bars_body basis-points value and ▲/▼/· direction arrow, linked_text_block coingecko coin-page URL, markdown_block bold-symbol bullet, and text_block per-coin lines, plus split sample_body unwrap_or_else into is_some presence assertion + unwrap so the panic branch stops registering as an uncovered region per [[feedback_coverage_test_panic_arms]] (e0ee972)
test(fetcher/basic/links): add metadata_methods_have_content asserting description mentions every LinkedTextBlock/ImageLinkedList/Text/TextBlock/MarkdownTextBlock/Entries dispatch shape and option_schemas exposes the single non-required links entry, and sample_body_covers_every_declared_shape pinning Some for every shape in SHAPES plus the wildcard _ => return None arm via Ratio/Image, and replace let-else panic arms with matches! assertions across linked_text_block default rows with optional URLs, markdown_text_block bullet+url joined output, text_block per-row title lines, entries name-url pairs with optional value, missing-options empty LinkedTextBlock fallback, unknown-key placeholder TextBlock, and image_linked_list title/thumbnail/subtitle shape coverage (857ed47)
test(fetcher/weather/forecast): replace let-else/match panic arms with matches! assertions across text_block per-day-line, text arrow-joined summary, entries weekday-keyed rows, ratio max-precip-probability label, number_series tenths-mm precipitation, point_series high/low unit labels and negative-temperature preservation, bars per-day probability, badge thunderstorm-error and clear-ahead-ok, timeline midnight-UTC timestamps, imperial-units point_series/text_block °F suffix, single-day-window text_block/text/bars collapse, and empty-forecast ratio zero-value no-label shape coverage (499f630)
test(fetcher/nasa_apod): cover sample_body _ => return None arm via Bars/Ratio shapes outside the Image+text-shape SHAPES set, and restore_env Some(value) => arm by pre-setting SPLASHBOARD_NASA_APOD_RESTORE_TEST before capturing the prior value (the standard save→mutate→restore flow always observes None and only fires the None arm), plus replace let-else panic arms with matches! assertions across entries_body copyright present/absent/blank, text_body Text/TextBlock/MarkdownTextBlock/LinkedTextBlock shape coverage, and linked_block malformed-date URL-drop arm (0d0e237)
test(fetcher/github/contributors_monthly): replace let-else/if-let panic arms with matches! assertions across sample_body Bars/Entries/LinkedTextBlock/TextBlock/MarkdownTextBlock/Text shape coverage and render_body Text headline, MarkdownTextBlock numbered list, TextBlock per-contributor lines, Entries name-count pairs, LinkedTextBlock profile-URL, and Bars label/value shape coverage (f01d6bb)
test(fetcher/reddit/user_posts): cover render_for_shape ImageLinkedList iterator+collect closure with non-empty posts whose "self"/empty thumbnails filter to None so download_many short-circuits without network, and replace let-else panic arms with matches! assertions across render_for_shape ImageLinkedList empty and TextBlock sync-dispatch shape coverage (742a5f3)
test(fetcher/code/comments): cover render_body Shape::Ratio dispatch arm via direct call that delegates to render_ratio (the dedicated render_ratio tests bypass the arm), and replace let-else/match panic arms with matches! assertions across render_text whole-repo ratio/empty, render_ratio total-comments-over-code-plus-comments/empty, render_body TextBlock/MarkdownTextBlock/Entries percent+loc/Bars percent+loc/Badge empty/Text headline shape coverage, and to_payload Text/Badge/Entries body shape coverage (e421836)
test(fetcher/deariary/on_this_day): replace let-else panic arms with matches! assertions across render_body TextBlock/LinkedTextBlock/Text/Timeline/Badge/Entries/MarkdownTextBlock shape coverage plus empty-hits TextBlock/Text/Badge/Timeline fallbacks and Heatmap unsupported-shape TextBlock fallback (c324e05)
test(fetcher/stock_watchlist): replace let-else panic arms with matches! assertions across entries_body status/value, number_series_body baseline-deviation and large-value scaling, point_series_body MAX_SERIES_STOCKS cap, bars_body basis-points/direction arrows, linked_text_block_body Yahoo quote URL percent-encoding, markdown_block_body bold-symbol prefix, and to_payload Text body shape coverage (8a3f0be)
test(fetcher/todoist): cover cmp_views third .then_with content-tiebreaker arm and dual unwrap_or(i64::MAX) fallback when both views miss due_sort_key, plus to_task_view created_at None unwrap_or_else(|| now.timestamp()) arm, and replace let-else panic arms with matches! assertions across render_body Badge/Text/Entries/Timeline/TextBlock/LinkedTextBlock shape coverage (8bdef9e)
test(fetcher/calendar/holidays): cover upcoming_lines and month_calendar parse_date ?/filter_map short-circuit arms via malformed-date entries that drop out while valid rows remain, and replace let-else panic arms with matches! assertions across render_body Text today-match/empty, TextBlock upcoming, and Calendar default-branch shape coverage (b4e6b2e)
test(fetcher/rss): replace let-else/match panic arms with matches! assertions across validated_url scheme/missing-url, render_body LinkedTextBlock/TextBlock shape coverage, atom alternate-vs-self link preference, count-cap, empty-entries, missing/whitespace title fallback, and fetch end-to-end body assertions (45dbb6c)
test(fetcher): replace let-else/if-let panic arms with matches! assertions in net/speedtest and system/monitor_battery, and cover net_speedtest shapes/refresh_interval/description metadata (7a94e43)
test(fetcher): replace let-else/match panic arms with matches! assertions across system info_* tests and add badge_data text-shape None guard in weather/now (0a31607)