Add rescue block to SourceDeletionWorker to handle cases where the
source no longer exists. This prevents infinite retries when a deletion
job fails and the source has already been removed from the database.
Configure SQLite busy_timeout PRAGMA to 5000ms so queries wait for
locks to be released instead of failing immediately. This prevents
Oban job queue from getting stuck with 'Database busy' errors during
concurrent operations.
Include :executing in the unique states list for both FastIndexingWorker
and MediaCollectionIndexingWorker. This ensures Oban properly tracks
executing jobs and prevents potential duplicate job issues.
Without :executing in the unique states, the uniqueness check doesn't
consider currently running jobs, which could lead to jobs not appearing
in the UI's active tasks view or duplicate jobs being scheduled.
After each successful indexing run, the source's download_cutoff_date is
automatically advanced to 7 days ago if the current cutoff date is older
(or nil). This prevents yt-dlp from scanning through months of old videos
on every index run, significantly improving indexing performance for
channels with large backlogs.
The 7-day buffer ensures recent videos are still checked on subsequent
index runs while keeping indexing fast (minutes instead of hours).
Also updates AGENTS.md to document Docker-based development workflow
and adds Pinchflat_improvements.md for tracking known issues.
Replace CI/CD documentation with practical guidelines for AI coding
agents including module structure, naming conventions, error handling
patterns, Oban worker examples, and testing patterns with Mox.
Consolidate the home page UI by moving Active Tasks from a separate
section into a third tab alongside Downloaded and Pending tabs.
Co-authored-by: Daniel <ddacunha@MacBook-Pro-14.local>
* Added Deno to Dockerfiles
* Updated yt-dlp source
* Added unzip
* Update deno directory
* The ACTUAL deno install path this time. Christ, am I new here?
* Linting
* Bumped Elixir
* Silenced mix check warnings
* Updated all deps with minor version upgrades
* Updated more deps; Refactored text components to work with phoenix_html updates
* README: add podman
Docker always has a tendency to get in my way on Debian. Also, I really
like the userns setup for podman for giving permissions between host and
container.
* Ran linting on README
---------
Co-authored-by: Kieran Eglin <kieran.eglin@gmail.com>
* Sources that use cookies when_needed now retry downloads if we think it'd help
* tweaked error message we're checking on to match media_download_worker