1.0.2 - 2026-05-18

Fixed

  • Set a finite default pool_max_idle_time (30 seconds) for the internal Req/Finch HTTP client so idle connections release their file descriptors. Without this, processing large lists of distinct hosts could exhaust the per-process open-file limit and silently truncate results or crash the BEAM. (#15)

Added

  • New :pool_max_idle_time option on FindSiteIcon.find_icon/2 so callers can override the default 30-second Finch idle-pool timeout per call. Accepts a positive integer in milliseconds or :infinity (which restores Req's pre-1.0.2 behaviour of keeping idle pools alive forever).

1.0.1 - 2026-05-16

Fixed

  • Restored v0.x behavior of probing all candidate icon URLs by default. v1.0.0 accidentally capped candidates at 20 unless callers overrode :max_icons.
  • Fixed header parsing for Req responses, which store headers as a map of header names to value lists.
  • Fall back to GET when a HEAD response succeeds but reports a non-image content type or zero content length.
  • Return a smaller non-empty icon when every discovered candidate is below the preferred size threshold.
  • Include .ico icon URLs and /favicon.ico as a final fallback.

1.0.0 - 2026-05-13

Changed

  • Replaced Tesla with a small Req-based HTTP wrapper.
  • Added :timeout to cap an entire icon lookup and pass the same timeout to internal HTTP requests.
  • Added :http_options, :max_concurrency, and :max_icons options.
  • Probes icon metadata with HEAD first and falls back to GET when needed.
  • Parses cache-control: max-age for cached icon expiration.
  • Tags live website smoke coverage as :external so normal test runs are deterministic.

Added

  • SVG and WebP icon URL support.
  • Bypass-backed HTTP wrapper tests.
  • Quokka formatting, Credo configuration, Dialyzer, and GitHub Actions CI.
  • Expanded README with badges, option docs, and hot-path timeout guidance.

Removed

  • Tesla and Mint direct dependencies.