github podly-pure-podcasts/podly_pure_podcasts v2.4.0

latest release: v2.5.0
6 hours ago

2.4.0 (2026-06-04)

Bug Fixes

  • add 100vh fallback for older browsers (93b884a)
  • address PR review findings — logging, tests, DRY, docs (9931407)
  • ci: add source path to mypy install-types and restore mypy cache (0ae6b65)
  • ci: collapse redundant mypy steps into one (f71dfdf)
  • ci: remove --install-types from mypy invocations (b6e97da)
  • ci: restore optional integration check flag (1dbfb5a)
  • clear SQLAlchemy identity map after each writer command (2e5a957), closes #199
  • cover all env var fields in read-only UI, API stripping, and runtime overlay (00ae8a6), closes #196
  • dark mode contrast and readability tweaks (fa8fa68)
  • docker: avoid undocumented --project file path in uv sync (7281803)
  • docker: install deps via uv export requirements (a2aba0e)
  • docker: pin uv version and remove dead pip env vars (58135fb)
  • docker: restore diagnostic echo lines in dependency install (c531dd1)
  • docker: use uv sync and uv run in container (e1a752d)
  • don't strip out rich html from podcast feeds. (bdf5f87)
  • double casting (191612f)
  • enhance word boundary refiner with improved JSON output handling. Output was geting truncated resulting in wasted LLM calls. (c66f139)
  • fix issues with dark mode text input coloring and sub-settings selector (2358644)
  • fix podcast feed spacing on mobile so buttons shapes behave correctly on mobile layouts (6ba9bf3)
  • fix refresh button being hard coded as black, and transparent borders not being transparent in dark mode (fdb8b94)
  • Implement auto-whitelist check for first member in feed (c052e93)
  • Implement auto-whitelist check for first member in feed so (38d320a)
  • Implement auto-whitelist check for first member in feed so (ad3fe13)
  • jobs: skip job creation for whitelisted posts with existing processed audio (1172f02)
  • Make the first click both reveal the in-page player and actually start playback, instead of needing a second click. (85e3c25)
  • merge duplicate ad_segments JSON keys from local LLMs (5d19488), closes #185
  • only re-queue failed jobs on cleanup and set step_name on cancel (2f296c1)
  • preserve rich feed HTML while normalizing problematic whitespace, and generate share/feed URLs with the correct HTTPS scheme behind forwarded proxy headers. (4585ed0)
  • re-add response_format to ad classification LLM calls (aa59013), closes #184
  • resolve NameError and linting issues (0113a2d)
  • revert cleanup re-queue change, keep cancel step_name fixes (ddf299f)
  • scripts: restore --install-types --non-interactive to ci.sh mypy (c6a9853)
  • tests: stabilize flaky post cleanup tests with explicit file mtimes (56b0eaf)
  • use dvh units to prevent bottom cutoff on Android Chrome (118c2d6)
  • use expunge_all() not expire_all() — actually frees identity map (e2b89d1)
  • use original episode duration for ad percentage and timeline stats (984f9c7)
  • use original episode duration for processing cost calculation (bf9a532)

Features

  • add advertisement removal summary and processing stats to the UI (046d112)
  • Add advertisement removal summary and timeline visualization to LLMProcessingStats component that was accidently removed in a previous refactoring PR (63682d9)
  • add build options for AMD64 and ARM64 images in Docker workflow (af5eb48)
  • add debug information for post stats including audio paths and processing details (6fcc0bc)
  • Add feed detail route and handle feed selection in HomePage component (a4d8d7e)
  • Add feed detail route and handle feed selection in HomePage component (8a81f5c)
  • add function to refine transcript chapter boundaries and enhance processing logic to ensure blocks are too large in long episodes (2df470c)
  • add functionality to cancel all queued jobs with API integration and UI support (0387ec9)
  • add LLM chapter fallback tagging configuration and related tests (aa45d06)
  • add manual workflow inputs for Docker image builds and update conditions for job execution (6d448d1)
  • Add Sorting Behavior to the podcast feed (a0b6119)
  • add support for manual workflow dispatch in Docker publish process (40abc03)
  • enhance audio processing and duration handling across routes and models (e2f754b)
  • Enhance episode description handling with expandable view and HTML decoding (5fa0c77)
  • enhance feed settings handling with chapter fallback logic and validation (f481d00)
  • frontend: add persisted dark mode toggle and contrast fixes (0cda964)
  • Implement admin cost dashboard and feed subscriber view with new job management actions. (e3afea6)
  • Implement advanced episode description parsing and rendering (0736bfe)
  • implement audio path resolution in JobManager and add unit tests for validation logic (6318fd1)
  • implement find_existing_processed_audio_path utility and refactor audio path handling in jobs manager and cleanup actions (c96f183)
  • introduce configurable cost rate per hour setting in app configuration. (72c7f39)
  • make env vars authoritative over database config (9a97c51), closes #190
  • retain more info on cleanup and integration check (80069fc)
  • retain most recent post after cleanup (add27e1)
  • simplify conditional checks for Docker build jobs and add variant selection logic (c66a2ec)

Performance Improvements

  • feed: drop synchronous refresh_feed from GET /feed/ (bef20fd)

Don't miss a new podly_pure_podcasts release

NewReleases is sending notifications on new releases.