Skip to content

v0.4.0

Choose a tag to compare

@dchuk dchuk released this 12 Feb 18:52
· 421 commits to main since this release
17bca85

[0.4.0] - 2026-02-12

Added

  • Install generator now auto-patches Procfile.dev with Solid Queue jobs: entry and queue.yml with recurring_schedule dispatcher wiring (idempotent, skip if already present).
  • RecurringScheduleVerifier checks that recurring tasks are registered with Solid Queue dispatchers; SolidQueueVerifier remediation now mentions Procfile.dev for bin/dev users.
  • Dashboard fetch log entries display source URL (domain for RSS, item URL for scrapes) alongside existing summary.
  • External links across dashboard, logs, sources, and items open in new tab with visual indicator icon.
  • Configurable Active Storage image downloads: config.images.download_to_active_storage (default false) detects inline images in feed content, downloads them via background job, and rewrites <img> src attributes with Active Storage URLs.
  • Images::ContentRewriter extracts and rewrites image URLs from HTML content using Nokolexbor.
  • Images::Downloader service validates content type and size before downloading images.
  • DownloadContentImagesJob orchestrates the download/attach/rewrite pipeline per item.
  • SSL certificate store configuration: every Faraday connection gets an OpenSSL::X509::Store initialized with set_default_paths, resolving "unable to get local issuer certificate" errors on systems with incomplete CA bundles.
  • Configurable SSL options in HTTPSettings: ssl_ca_file, ssl_ca_path, ssl_verify for non-standard certificate environments.
  • Netflix Tech Blog VCR cassette regression test proving Medium-hosted RSS feeds parse correctly with the SSL fix.

Fixed

  • SSL certificate verification failures for feeds hosted on services requiring intermediate CAs (e.g., Netflix Tech Blog via Medium/AWS).
  • Setup documentation now includes Procfile.dev and recurring_schedule guidance.
  • ItemContent model gracefully handles host apps without Active Storage installed.

Changed

  • Updated sm-host-setup, sm-configure, and setup documentation to reflect that the generator handles Procfile.dev and recurring_schedule automatically.

Testing

  • 980 tests, 3,130 assertions, 0 failures (up from 841 tests in 0.3.3).
  • RuboCop: 391 files, 0 offenses.
  • Brakeman: 0 warnings.