Skip to content

refactor: generic jobs support#64

Open
FlyinPancake wants to merge 11 commits intomainfrom
refactor/universal-jobs
Open

refactor: generic jobs support#64
FlyinPancake wants to merge 11 commits intomainfrom
refactor/universal-jobs

Conversation

@FlyinPancake
Copy link
Copy Markdown
Owner

@FlyinPancake FlyinPancake commented Apr 26, 2026

  1. implemented download album job
  2. next comes download track
  3. probably more refactors along the way

Summary by CodeRabbit

Release Notes

  • New Features

    • Unified job management system with enhanced tracking, monitoring, and progress visibility.
    • New job lifecycle states: queued, running, succeeded, failed, and cancelled.
    • Improved attempt counting and detailed error messaging for jobs.
  • Documentation

    • Added comprehensive SeaORM 2.0 reference guides and migration documentation.

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
yoink-docs Ready Ready Preview, Comment Apr 29, 2026 10:53pm

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 26, 2026

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 4d5f36f5-7757-415e-a57e-63513292f0cd

📥 Commits

Reviewing files that changed from the base of the PR and between d578cf2 and 3b9c601.

⛔ Files ignored due to path filters (2)
  • Cargo.lock is excluded by !**/*.lock
  • frontend/bun.lock is excluded by !**/*.lock
📒 Files selected for processing (46)
  • .agents/skills/sea-orm-2/SKILL.md
  • .agents/skills/sea-orm-2/references/activemodel-patterns.md
  • .agents/skills/sea-orm-2/references/entity-patterns.md
  • .agents/skills/sea-orm-2/references/migration-guide.md
  • .agents/skills/sea-orm-2/references/query-patterns.md
  • crates/yoink-migration/src/lib.rs
  • crates/yoink-migration/src/m20260425_213324_jobs.rs
  • crates/yoink-server/src/api/models/download.rs
  • crates/yoink-server/src/api/models/job.rs
  • crates/yoink-server/src/api/models/mod.rs
  • crates/yoink-server/src/db/entities/album.rs
  • crates/yoink-server/src/db/entities/job.rs
  • crates/yoink-server/src/db/entities/job_kind.rs
  • crates/yoink-server/src/db/entities/job_status.rs
  • crates/yoink-server/src/db/entities/mod.rs
  • crates/yoink-server/src/db/entities/track.rs
  • crates/yoink-server/src/main.rs
  • crates/yoink-server/src/providers/mock.rs
  • crates/yoink-server/src/providers/mod.rs
  • crates/yoink-server/src/providers/tidal/instances.rs
  • crates/yoink-server/src/routes/album.rs
  • crates/yoink-server/src/routes/dashboard.rs
  • crates/yoink-server/src/routes/job.rs
  • crates/yoink-server/src/routes/wanted.rs
  • crates/yoink-server/src/services/album.rs
  • crates/yoink-server/src/services/downloads/io.rs
  • crates/yoink-server/src/services/downloads/metadata.rs
  • crates/yoink-server/src/services/downloads/mod.rs
  • crates/yoink-server/src/services/downloads/worker.rs
  • crates/yoink-server/src/services/jobs/download.rs
  • crates/yoink-server/src/services/jobs/metadata.rs
  • crates/yoink-server/src/services/jobs/mod.rs
  • crates/yoink-server/src/services/library/merge.rs
  • crates/yoink-server/src/services/mod.rs
  • crates/yoink-server/src/services/track.rs
  • frontend/.oxlintrc.json
  • frontend/package.json
  • frontend/src/lib/api/collections.ts
  • frontend/src/lib/api/index.ts
  • frontend/src/lib/api/mutations.ts
  • frontend/src/lib/api/types.gen.ts
  • frontend/src/lib/music.ts
  • frontend/src/routes/_app/artists/$artistId/albums/$albumId.tsx
  • frontend/src/routes/_app/dashboard.tsx
  • frontend/src/routes/_app/downloads.tsx
  • skills-lock.json
 ________________________________________________________________
< Fully armed and operationally intelligent code reviewer bunny. >
 ----------------------------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/universal-jobs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 0/1 reviews remaining, refill in 60 minutes.

Comment @coderabbitai help to get the list of available commands and usage tips.

Tip

CodeRabbit can approve clean reviews and PRs whose review comments are fully resolved.

Enable the reviews.request_changes_workflow setting to allow automatic approval for clean reviews, approval after CodeRabbit comments are resolved, and explicit top-level @coderabbitai resolve or @coderabbitai approve commands.

- reuse existing deduplicated jobs by re-queuing data for
  completed/failed
- add list_jobs_for_track and prepare_track_for_unmonitor to cancel
  queued/
  failed jobs and prevent unmonitoring if a job is running
- adjust provider selection order and error handling when enqueuing
  downloads
- revise album download processing to update job state and progress
  correctly
- add tests for track/album unmonitoring behavior and fix frontend
  progress
  percentage calculation
@FlyinPancake FlyinPancake marked this pull request as ready for review April 29, 2026 23:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant